fixed majority of java-related warnings
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetail.java b/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
index 43b4544..957079f 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
@@ -24,9 +24,6 @@
import java.util.ArrayList;
import java.util.HashMap;
-import android.provider.MediaStore;
-import android.provider.MediaStore.Audio.Media;
-
public interface AccountDetail {
public static class PreferenceEntry {
@@ -76,5 +73,4 @@
public void setDetailString(String key, String newValue);
- public boolean getDetailBoolean();
}
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java
index 1829ff2..ca63767 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java
@@ -21,16 +21,12 @@
*/
package com.savoirfairelinux.sflphone.account;
-import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountDetail;
-import com.savoirfairelinux.sflphone.account.AccountDetail.PreferenceEntry;
+import java.util.ArrayList;
+import java.util.HashMap;
import android.util.Log;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashMap;
+import com.savoirfairelinux.sflphone.R;
public class AccountDetailAdvanced implements AccountDetail {
@@ -56,11 +52,11 @@
public static final String CONFIG_PUBLISHED_ADDRESS = "Account.publishedAddress";
// FIXME: Why isn't this 5060?
- public static final String CONFIG_DEFAULT_LOCAL_PORT = "5070";
- public static final String CONFIG_DEFAULT_PUBLISHED_PORT = "5070";
+ public static final String CONFIG_DEFAULT_LOCAL_PORT = "5060";
+ public static final String CONFIG_DEFAULT_PUBLISHED_PORT = "5060";
public static final String CONFIG_DEFAULT_PUBLISHED_SAMEAS_LOCAL = "true";
// FIXME: Why isn't this "default"?
- public static final String CONFIG_DEFAULT_INTERFACE = "wlan0";
+ public static final String CONFIG_DEFAULT_INTERFACE = "default";
public static final String CONFIG_DEFAULT_REGISTRATION_EXPIRE = "60";
public static final String CONFIG_DISPLAY_NAME = "Account.displayName";
@@ -180,9 +176,4 @@
}
- public boolean getDetailBoolean()
- {
- return true;
- }
-
}
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java
index 4f9137d..b2766ed 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java
@@ -21,16 +21,12 @@
*/
package com.savoirfairelinux.sflphone.account;
-import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountDetail;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
+import java.util.ArrayList;
+import java.util.HashMap;
import android.util.Log;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashMap;
+import com.savoirfairelinux.sflphone.R;
public class AccountDetailBasic implements AccountDetail {
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java
index a193f85..7b82d72 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java
@@ -21,17 +21,12 @@
*/
package com.savoirfairelinux.sflphone.account;
-import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountDetail;
-import com.savoirfairelinux.sflphone.account.AccountDetail.PreferenceEntry;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
+import java.util.ArrayList;
+import java.util.HashMap;
import android.util.Log;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashMap;
+import com.savoirfairelinux.sflphone.R;
public class AccountDetailSrtp implements AccountDetail{
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java
index 0794749..8d535f7 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java
@@ -27,7 +27,6 @@
import android.util.Log;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
public class AccountDetailTls implements AccountDetail {
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java
index fb6c5cc..da01569 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java
@@ -25,11 +25,10 @@
import java.util.HashMap;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
import com.savoirfairelinux.sflphone.service.StringMap;
public class AccountDetailsHandler {
- private static final String TAG = "AccountDetailsHandler";
+// private static final String TAG = "AccountDetailsHandler";
public static class PreferenceEntry {
public String mKey;
diff --git a/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java b/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java
index ddce5be..76ff36b 100644
--- a/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java
+++ b/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java
@@ -69,6 +69,8 @@
if (smap.has_key(key)) {
return smap.get(key);
} else {
+ if(key.contentEquals(ServiceConstants.call.TIMESTAMP_START))
+ return ""+System.currentTimeMillis() / 1000;
return "";
}
}
diff --git a/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java b/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java
index 130ef31..993b0b5 100644
--- a/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java
+++ b/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java
@@ -3,14 +3,12 @@
import java.util.ArrayList;
import java.util.HashMap;
-import android.util.Log;
-
import com.savoirfairelinux.sflphone.service.ServiceConstants;
-import com.savoirfairelinux.sflphone.service.VectMap;
import com.savoirfairelinux.sflphone.service.StringMap;
+import com.savoirfairelinux.sflphone.service.VectMap;
public class HistoryHandler {
- private static final String TAG = HistoryHandler.class.getSimpleName();
+// private static final String TAG = HistoryHandler.class.getSimpleName();
private static String tryToGet(StringMap smap, String key) {
if (smap.has_key(key)) {
diff --git a/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java
index c794cdb..ae5d8a5 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java
@@ -14,7 +14,6 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.model.Account;
-import com.savoirfairelinux.sflphone.service.ISipService;
public class AccountSelectionAdapter extends BaseAdapter {
diff --git a/src/com/savoirfairelinux/sflphone/adapters/ContactPictureLoader.java b/src/com/savoirfairelinux/sflphone/adapters/ContactPictureTask.java
similarity index 94%
rename from src/com/savoirfairelinux/sflphone/adapters/ContactPictureLoader.java
rename to src/com/savoirfairelinux/sflphone/adapters/ContactPictureTask.java
index 591d0c3..d1d5f6b 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/ContactPictureLoader.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/ContactPictureTask.java
@@ -50,13 +50,13 @@
import com.savoirfairelinux.sflphone.R;
-public class ContactPictureLoader implements Runnable {
+public class ContactPictureTask implements Runnable {
private ImageView view;
private long cid;
private ContentResolver cr;
- private final String TAG = ContactPictureLoader.class.getSimpleName();
+// private final String TAG = ContactPictureTask.class.getSimpleName();
- public ContactPictureLoader(Context context, ImageView element, long contact_id) {
+ public ContactPictureTask(Context context, ImageView element, long contact_id) {
cid = contact_id;
cr = context.getContentResolver();
view = element;
diff --git a/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java
index b27c85f..a47b20a 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java
@@ -9,7 +9,6 @@
import java.util.concurrent.Executors;
import android.content.Context;
-import android.util.Log;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
@@ -30,7 +29,7 @@
HashMap<String, Integer> alphaIndexer;
String[] sections;
- private static final String TAG = ContactsAdapter.class.getSimpleName();
+// private static final String TAG = ContactsAdapter.class.getSimpleName();
public ContactsAdapter(Context context) {
super();
@@ -79,7 +78,7 @@
((TextView) convertView.findViewById(R.id.display_name)).setText(item.getmDisplayName());
ImageView photo_view = (ImageView) convertView.findViewById(R.id.photo);
- infos_fetcher.execute(new ContactPictureLoader(mContext, photo_view, item.getId()));
+ infos_fetcher.execute(new ContactPictureTask(mContext, photo_view, item.getId()));
return convertView;
}
@@ -206,14 +205,14 @@
}
private class Section {
- public int startPosition;
+// public int startPosition;
public int number;
public String header;
public Section(int i, int headersCount, String str) {
// Log.i(TAG, "Creating section");
- startPosition = i + headersCount;
+// startPosition = i + headersCount;
number = headersCount;
header = str;
diff --git a/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java
index f58ad4f..903eac6 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java
@@ -1,19 +1,19 @@
package com.savoirfairelinux.sflphone.adapters;
import java.util.ArrayList;
+import java.util.Locale;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
-import android.os.Bundle;
import android.os.RemoteException;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.util.Log;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.fragments.HomeFragment;
import com.savoirfairelinux.sflphone.fragments.DialingFragment;
import com.savoirfairelinux.sflphone.fragments.HistoryFragment;
+import com.savoirfairelinux.sflphone.fragments.HomeFragment;
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
@@ -73,11 +73,11 @@
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
- return mContext.getString(R.string.title_section0).toUpperCase();
+ return mContext.getString(R.string.title_section0).toUpperCase(Locale.getDefault());
case 1:
- return mContext.getString(R.string.title_section1).toUpperCase();
+ return mContext.getString(R.string.title_section1).toUpperCase(Locale.getDefault());
case 2:
- return mContext.getString(R.string.title_section2).toUpperCase();
+ return mContext.getString(R.string.title_section2).toUpperCase(Locale.getDefault());
default:
Log.e(TAG, "getPageTitle: unknown tab position " + position);
break;
diff --git a/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java
index c09dfe7..70ac20e 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java
@@ -52,7 +52,7 @@
private ArrayList<CallContact> dataset;
Context mContext;
- private static final String TAG = ContactsAdapter.class.getSimpleName();
+// private static final String TAG = ContactsAdapter.class.getSimpleName();
public StarredContactsAdapter(Context context) {
super();
@@ -100,7 +100,7 @@
((TextView) v.findViewById(R.id.display_name)).setText(item.getmDisplayName());
ImageView photo_view = (ImageView) v.findViewById(R.id.photo);
- infos_fetcher.execute(new ContactPictureLoader(mContext, photo_view, item.getId()));
+ infos_fetcher.execute(new ContactPictureTask(mContext, photo_view, item.getId()));
return v;
}
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
index ded776c..2a99448 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
@@ -82,6 +82,7 @@
private boolean isDifferent = false;
+ @SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountWizard.java b/src/com/savoirfairelinux/sflphone/client/AccountWizard.java
index 6218ab9..129a6bf 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountWizard.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountWizard.java
@@ -32,16 +32,14 @@
package com.savoirfairelinux.sflphone.client;
import java.util.ArrayList;
+import java.util.Locale;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.ServiceConnection;
import android.os.Bundle;
-import android.os.IBinder;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
@@ -50,8 +48,6 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.fragments.AccountCreationFragment;
import com.savoirfairelinux.sflphone.interfaces.AccountsInterface;
-import com.savoirfairelinux.sflphone.service.ISipService;
-import com.savoirfairelinux.sflphone.service.SipService;
public class AccountWizard extends Activity implements AccountsInterface {
static final String TAG = "AccountWizard";
@@ -59,7 +55,6 @@
public static final int ACCOUNT_CREATED = Activity.RESULT_OK;
ViewPager mViewPager;
- private ISipService service;
private SectionsPagerAdapter mSectionsPagerAdapter;
@Override
@@ -71,40 +66,17 @@
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
-
- Intent intent = new Intent(this, SipService.class);
- bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
+ mSectionsPagerAdapter = new SectionsPagerAdapter(AccountWizard.this, getFragmentManager());
+ mViewPager.setAdapter(mSectionsPagerAdapter);
}
/* activity finishes itself or is being killed by the system */
@Override
protected void onDestroy() {
- /* stop the service, if no other bound user, no need to check if it is running */
-
- unbindService(mConnection);
-
super.onDestroy();
}
- /** Defines callbacks for service binding, passed to bindService() */
- private ServiceConnection mConnection = new ServiceConnection() {
-
- @Override
- public void onServiceConnected(ComponentName className, IBinder binder) {
- service = ISipService.Stub.asInterface(binder);
-
- mSectionsPagerAdapter = new SectionsPagerAdapter(AccountWizard.this, getFragmentManager());
- mViewPager.setAdapter(mSectionsPagerAdapter);
-
- }
-
- @Override
- public void onServiceDisconnected(ComponentName arg0) {
-
- }
- };
-
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
@@ -178,7 +150,7 @@
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
- return mContext.getString(R.string.title_section0).toUpperCase();
+ return mContext.getString(R.string.title_section0).toUpperCase(Locale.getDefault());
default:
Log.e(TAG, "getPageTitle: unknown tab position " + position);
break;
diff --git a/src/com/savoirfairelinux/sflphone/client/CallActivity.java b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
index d66fecd..d92b53f 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
@@ -33,7 +33,6 @@
package com.savoirfairelinux.sflphone.client;
-import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
@@ -264,6 +263,7 @@
}
+ @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
public void processCallStateChangedSignal(String callID, String newState) {
/*
* Bundle bundle = intent.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate"); String callID = bundle.getString("CallID"); String
@@ -285,8 +285,8 @@
}
if (callMap.size() > 0) {
- ArrayList<SipCall> calls = new ArrayList<SipCall>(callMap.values());
- HashMap<String, String> details = (HashMap<String, String>) service.getCallDetails(calls.get(0).getCallId());
+// ArrayList<SipCall> calls = new ArrayList<SipCall>(callMap.values());
+// HashMap<String, String> details = (HashMap<String, String>) service.getCallDetails(calls.get(0).getCallId());
}
} catch (RemoteException e) {
@@ -317,6 +317,7 @@
if (mCurrentCallFragment == null || mCurrentCallFragment.getBubbleView() == null) {
return;
}
+ mHandler.removeCallbacks(mUpdateTimeTask);
mCurrentCallFragment.getBubbleView().stopThread();
mCurrentCallFragment = new CallFragment();
Bundle b = new Bundle();
@@ -492,6 +493,7 @@
@Override
public void replaceCurrentCallDisplayed() {
+ mHandler.removeCallbacks(mUpdateTimeTask);
mCurrentCallFragment.getBubbleView().stopThread();
getFragmentManager().beginTransaction().remove(mCurrentCallFragment).commit();
mCurrentCallFragment = null;
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
index 53a6c6e..43c450e 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
@@ -200,13 +200,6 @@
// mTabHost = (TabHost) findViewById(android.R.id.tabhost);
mDrawerLayout.setDrawerListener(mDrawerToggle);
- mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
- @Override
- public void onPageSelected(int position) {
- // mTabHost.setCurrentTab(position);
- }
- });
-
}
@Override
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
index f657702..86f21fc 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
@@ -31,6 +31,8 @@
package com.savoirfairelinux.sflphone.client;
+import java.util.Locale;
+
import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
@@ -49,7 +51,6 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.fragments.AccountManagementFragment;
-import com.savoirfairelinux.sflphone.fragments.AudioManagementFragment;
import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.service.SipService;
@@ -198,7 +199,7 @@
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
- return getString(R.string.preference_section1).toUpperCase();
+ return getString(R.string.preference_section1).toUpperCase(Locale.getDefault());
// case 1:
// return getString(R.string.preference_section2).toUpperCase();
default:
diff --git a/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java b/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
index b48844c..9faabd0 100644
--- a/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
+++ b/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
@@ -5,11 +5,11 @@
public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_ALPHA = .6f;
- private final float scalingStart;
+// private final float scalingStart;
public ZoomOutPageTransformer(float scalingStart) {
super();
- this.scalingStart = 1 - scalingStart;
+// this.scalingStart = 1 - scalingStart;
}
@Override
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
index af758ef..5103e4b 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
@@ -3,10 +3,7 @@
import java.util.HashMap;
import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
import android.app.Fragment;
-import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
index cf96191..c3c692a 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
@@ -136,6 +136,7 @@
Log.i(TAG, "onDestroy");
}
+ @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
@@ -295,6 +296,7 @@
startActivityForResult(intent, ACCOUNT_EDIT_REQUEST);
}
+ @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
private ArrayList<String> getAccountList() {
ArrayList<String> accountList = null;
try {
@@ -309,6 +311,7 @@
return accountList;
}
+ @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
private HashMap<String, String> getAccountDetails(String accountID) {
HashMap<String, String> accountDetails = null;
try {
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
index 022cf2e..32b7db4 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
@@ -35,15 +35,13 @@
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
-import android.graphics.Typeface;
+import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
-import android.os.Bundle;
-import android.util.Log;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -219,10 +217,6 @@
seekbar.setMax( max );
}
- private SeekBar getSeekBar () {
- return seekbar;
- }
-
@Override
protected Object onGetDefaultValue (TypedArray a, int index) {
return a.getInt( index, progress );
@@ -253,7 +247,7 @@
else {
setProgress( seekBar.getProgress() );
- OnPreferenceChangeListener listener = getOnPreferenceChangeListener();
+// OnPreferenceChangeListener listener = getOnPreferenceChangeListener();
//if (listener instanceof AbstractSeekBarListener)
//// setSummary( ((AbstractSeekBarListener)listener).toSummary( seekBar.getProgress() ) );
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java b/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java
index 5d011db..1c3f203 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java
@@ -39,7 +39,6 @@
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.Fragment;
-import android.app.FragmentManager;
import android.content.ClipData;
import android.content.ClipData.Item;
import android.content.Context;
@@ -206,6 +205,7 @@
OnDragListener dragListener = new OnDragListener() {
+ @SuppressWarnings("deprecation") // deprecated in API 16....
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
@@ -292,9 +292,9 @@
}
};
+ @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
public void update() {
try {
- Log.w(TAG, "Updating");
HashMap<String, SipCall> list = (HashMap<String, SipCall>) mCallbacks.getService().getCallList();
// Toast.makeText(getActivity(), "Calls: " + list.size(), Toast.LENGTH_SHORT).show();
@@ -304,7 +304,6 @@
ArrayList<SipCall> simple_calls = new ArrayList<SipCall>(list.values());
for (SipCall call : simple_calls) {
- Log.w(TAG, "SimpleCall:" + call.getCallId());
Conference confOne = new Conference("-1");
confOne.getParticipants().add(call);
conferences.add(confOne);
diff --git a/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java b/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java
index 0316d33..6f4cabd 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java
@@ -24,9 +24,7 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.loaders.ContactsLoader;
-import com.savoirfairelinux.sflphone.model.CallContact;
import com.savoirfairelinux.sflphone.model.Conference;
-import com.savoirfairelinux.sflphone.model.SipCall;
public class ConferenceDFragment extends DialogFragment implements LoaderManager.LoaderCallbacks<Bundle> {
@@ -105,7 +103,7 @@
@Override
public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
- ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
+// ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java b/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
index da42955..b9d38a6 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
@@ -31,38 +31,32 @@
package com.savoirfairelinux.sflphone.fragments;
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
-import android.os.Build;
import android.os.Bundle;
+import android.util.Log;
import android.view.LayoutInflater;
+import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.ImageButton;
-import android.widget.Toast;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.views.ClearableEditText;
-public class DialingFragment extends Fragment {
+public class DialingFragment extends Fragment implements OnTouchListener {
private static final String TAG = DialingFragment.class.getSimpleName();
- public static final String ARG_SECTION_NUMBER = "section_number";
ClearableEditText textField;
- // private AccountSelectionSpinner mAccountSelectionSpinner;
-
- // AccountSelectionAdapter mAdapter;
private Callbacks mCallbacks = sDummyCallbacks;
- // private Spinner spinnerAccounts;
/**
* A dummy implementation of the {@link Callbacks} interface that does nothing. Used only when this fragment is not attached to an activity.
@@ -110,8 +104,9 @@
@Override
public void onCreate(Bundle savedInstanceState) {
+ Log.i(TAG,"Create History Fragment");
super.onCreate(savedInstanceState);
- // mAdapter = new HistoryAdapter(getActivity(),new ArrayList<HashMap<String, String>>());
+
}
@Override
@@ -132,6 +127,8 @@
}
});
+ inflatedView.setOnTouchListener(this);
+
((Button) inflatedView.findViewById(R.id.alphabetic_keyboard)).setOnClickListener(new OnClickListener() {
@Override
@@ -146,16 +143,14 @@
@Override
public void onClick(View v) {
- textField.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
+ textField.setInputType(EditorInfo.TYPE_CLASS_PHONE);
InputMethodManager lManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
lManager.showSoftInput(textField.getEdit_text(), 0);
}
});
-
return inflatedView;
}
-
@Override
public void onResume() {
super.onResume();
@@ -164,7 +159,15 @@
@Override
public void onStart() {
super.onStart();
+ }
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ InputMethodManager lManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ lManager.showSoftInput(textField.getEdit_text(), 0);
+ textField.setError(null);
+ lManager.hideSoftInputFromWindow(textField.getWindowToken(), 0);
+ return false;
}
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java b/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
index 766e067..480b122 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
@@ -56,7 +56,7 @@
import android.widget.TextView;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.adapters.ContactPictureLoader;
+import com.savoirfairelinux.sflphone.adapters.ContactPictureTask;
import com.savoirfairelinux.sflphone.loaders.HistoryLoader;
import com.savoirfairelinux.sflphone.loaders.LoaderConstants;
import com.savoirfairelinux.sflphone.model.HistoryEntry;
@@ -65,7 +65,6 @@
public class HistoryFragment extends ListFragment implements LoaderCallbacks<ArrayList<HistoryEntry>> {
private static final String TAG = HistoryFragment.class.getSimpleName();
- public static final String ARG_SECTION_NUMBER = "section_number";
HistoryAdapter mAdapter;
private Callbacks mCallbacks = sDummyCallbacks;
@@ -217,7 +216,7 @@
// SipCall call = (SipCall) mCallList.values().toArray()[position];
entryView.displayName.setText(dataset.get(pos).getContact().getmDisplayName());
- infos_fetcher.execute(new ContactPictureLoader(mContext.getActivity(), entryView.photo, dataset.get(pos).getContact().getId()));
+ infos_fetcher.execute(new ContactPictureTask(mContext.getActivity(), entryView.photo, dataset.get(pos).getContact().getId()));
entryView.missed.setText("Missed:" + dataset.get(pos).getMissed_sum());
entryView.incoming.setText("In:" + dataset.get(pos).getIncoming_sum());
diff --git a/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java b/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
index 33228ae..cb6cb0b 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
@@ -30,14 +30,10 @@
*/
package com.savoirfairelinux.sflphone.fragments;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
-import java.util.Locale;
import java.util.Observable;
import java.util.Observer;
-import java.util.TimeZone;
import android.app.Activity;
import android.app.Fragment;
@@ -46,7 +42,6 @@
import android.os.Handler;
import android.os.RemoteException;
import android.os.SystemClock;
-import android.text.format.DateFormat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -69,7 +64,6 @@
private static final String TAG = HomeFragment.class.getSimpleName();
private Callbacks mCallbacks = sDummyCallbacks;
- // Button access_calls;
TextView nb_calls, nb_confs;
CallListAdapter confs_adapter;
CallTimer timer;
@@ -149,6 +143,7 @@
}
+ @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
public void updateLists() throws RemoteException {
HashMap<String, SipCall> calls = (HashMap<String, SipCall>) mCallbacks.getService().getCallList();
HashMap<String, Conference> confs = (HashMap<String, Conference>) mCallbacks.getService().getConferenceList();
diff --git a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
index 7339a91..14bee67 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
@@ -51,7 +51,6 @@
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.Spinner;
-import android.widget.Toast;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.adapters.AccountSelectionAdapter;
diff --git a/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java b/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java
index c77949a..a90fe22 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java
@@ -36,7 +36,6 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.loaders.ContactsLoader;
-import com.savoirfairelinux.sflphone.model.CallContact;
import com.savoirfairelinux.sflphone.model.Conference;
import com.savoirfairelinux.sflphone.model.SipCall;
@@ -151,7 +150,7 @@
@Override
public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
- ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
+// ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
}
@@ -165,7 +164,7 @@
private LayoutInflater mInflater;
private Geocoder mGeocoder;
- private StringBuilder mSb = new StringBuilder();
+// private StringBuilder mSb = new StringBuilder();
public AutoCompleteAdapter(final Context context) {
super(context, -1);
diff --git a/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java b/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java
index 375a039..40af292 100644
--- a/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java
+++ b/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java
@@ -22,6 +22,7 @@
service = ref;
}
+ @SuppressWarnings("unchecked") // Hashmap runtime cast
@Override
public ArrayList<Account> loadInBackground() {
diff --git a/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java b/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java
index 719dcde..f0b48d1 100644
--- a/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java
+++ b/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java
@@ -34,6 +34,7 @@
service = isip;
}
+ @SuppressWarnings("unchecked") // Hashmap runtime cast
@Override
public ArrayList<HistoryEntry> loadInBackground() {
diff --git a/src/com/savoirfairelinux/sflphone/model/Account.java b/src/com/savoirfairelinux/sflphone/model/Account.java
index 0ed30fa..2f76d29 100644
--- a/src/com/savoirfairelinux/sflphone/model/Account.java
+++ b/src/com/savoirfairelinux/sflphone/model/Account.java
@@ -40,7 +40,6 @@
import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
import com.savoirfairelinux.sflphone.account.AccountDetailSrtp;
import com.savoirfairelinux.sflphone.account.AccountDetailTls;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
public class Account implements Parcelable {
diff --git a/src/com/savoirfairelinux/sflphone/model/Bubble.java b/src/com/savoirfairelinux/sflphone/model/Bubble.java
index db61337..f71a385 100644
--- a/src/com/savoirfairelinux/sflphone/model/Bubble.java
+++ b/src/com/savoirfairelinux/sflphone/model/Bubble.java
@@ -13,7 +13,7 @@
import android.util.Log;
import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.adapters.ContactPictureLoader;
+import com.savoirfairelinux.sflphone.adapters.ContactPictureTask;
public class Bubble {
@@ -45,7 +45,7 @@
Bitmap photo = null;
if (call.getContact().getPhoto_id() > 0) {
- photo = ContactPictureLoader.loadContactPhoto(context.getContentResolver(), call.getContact().getId());
+ photo = ContactPictureTask.loadContactPhoto(context.getContentResolver(), call.getContact().getId());
} else {
photo = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_contact_picture);
}
diff --git a/src/com/savoirfairelinux/sflphone/model/BubbleModel.java b/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
index 2032e6e..b02b84f 100644
--- a/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
+++ b/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
@@ -36,6 +36,7 @@
private float density = 1.f;
public BubbleModel(float screen_density) {
+ Log.d(TAG, "Creating BubbleModel");
this.density = screen_density;
attractor_dist_suck = ATTRACTOR_DIST_SUCK*density;
bubble_max_speed = BUBBLE_MAX_SPEED*density;
diff --git a/src/com/savoirfairelinux/sflphone/model/CallContact.java b/src/com/savoirfairelinux/sflphone/model/CallContact.java
index bc720a0..6f7b834 100644
--- a/src/com/savoirfairelinux/sflphone/model/CallContact.java
+++ b/src/com/savoirfairelinux/sflphone/model/CallContact.java
@@ -211,7 +211,7 @@
isUser = in.readByte() == 1 ? true : false;
}
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
+ public static final Parcelable.Creator<CallContact> CREATOR = new Parcelable.Creator<CallContact>() {
@Override
public CallContact createFromParcel(Parcel in) {
return new CallContact(in);
diff --git a/src/com/savoirfairelinux/sflphone/model/Conference.java b/src/com/savoirfairelinux/sflphone/model/Conference.java
index c242b4d..ef0a2c8 100644
--- a/src/com/savoirfairelinux/sflphone/model/Conference.java
+++ b/src/com/savoirfairelinux/sflphone/model/Conference.java
@@ -1,9 +1,6 @@
package com.savoirfairelinux.sflphone.model;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
import android.os.Parcel;
import android.os.Parcelable;
diff --git a/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java b/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java
index 64769b8..60b91f3 100644
--- a/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java
+++ b/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java
@@ -12,16 +12,14 @@
import android.os.RemoteException;
import android.util.Log;
-import com.savoirfairelinux.sflphone.account.CallDetailsHandler;
import com.savoirfairelinux.sflphone.model.CallContact;
import com.savoirfairelinux.sflphone.model.Conference;
import com.savoirfairelinux.sflphone.model.SipCall;
import com.savoirfairelinux.sflphone.service.CallManagerCallBack;
import com.savoirfairelinux.sflphone.service.ConfigurationManagerCallback;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
import com.savoirfairelinux.sflphone.service.ISipService.Stub;
+import com.savoirfairelinux.sflphone.service.ServiceConstants;
import com.savoirfairelinux.sflphone.service.SipService;
-import com.savoirfairelinux.sflphone.service.StringMap;
public class IncomingReceiver extends BroadcastReceiver {
@@ -35,6 +33,7 @@
mBinder = bind;
}
+ @SuppressWarnings("unchecked") // Hashmap runtime cast
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java
index 48e1440..4b96ae1 100644
--- a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java
+++ b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java
@@ -25,10 +25,9 @@
import android.content.Context;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
-import android.util.Log;
public class ConfigurationManagerCallback extends ConfigurationCallback {
- private static final String TAG = "ConfigurationManagerCallback";
+// private static final String TAG = "ConfigurationManagerCallback";
private Context mContext;
static public final String SIGNAL_NAME = "signal-name";
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index fb78acb..217568d 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -536,6 +536,7 @@
return nativemap;
}
+ @SuppressWarnings("unchecked") // Hashmap runtime cast
@Override
public void setAccountDetails(final String accountId, final Map map) {
HashMap<String, String> nativemap = (HashMap<String, String>) map;
@@ -584,6 +585,7 @@
return nativemap;
}
+ @SuppressWarnings("unchecked") // Hashmap runtime cast
@Override
public String addAccount(Map map) {
class AddAccount extends SipRunnableWithReturn {
diff --git a/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java b/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
index 78c1e9c..8a21b7c 100644
--- a/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
+++ b/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
@@ -1,5 +1,7 @@
package com.savoirfairelinux.sflphone.views;
+import java.lang.ref.WeakReference;
+
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -10,7 +12,6 @@
import android.os.Message;
import android.os.SystemClock;
import android.util.AttributeSet;
-import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.SoundEffectConstants;
@@ -80,7 +81,7 @@
private static final int EXPANDED_FULL_OPEN = -10001;
private static final int COLLAPSED_FULL_CLOSED = -10002;
- private static final String TAG = CustomSlidingDrawer.class.getSimpleName();
+// private static final String TAG = CustomSlidingDrawer.class.getSimpleName();
private final int mHandleId;
private final int mContentId;
@@ -107,7 +108,7 @@
private OnDrawerCloseListener mOnDrawerCloseListener;
private OnDrawerScrollListener mOnDrawerScrollListener;
- private final Handler mHandler = new SlidingHandler();
+ private SlidingHandler mHandler;
private float mAnimatedAcceleration;
private float mAnimatedVelocity;
private float mAnimationPosition;
@@ -186,7 +187,9 @@
public CustomSlidingDrawer(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomSlidingDrawer, defStyle, 0);
-
+
+ mHandler = new SlidingHandler(this);
+
int orientation = a.getInt(R.styleable.CustomSlidingDrawer_orientation, ORIENTATION_VERTICAL);
mVertical = orientation == ORIENTATION_VERTICAL;
mBottomOffset = (int) a.getDimension(R.styleable.CustomSlidingDrawer_bottomOffset, 0.0f);
@@ -966,11 +969,19 @@
this.mTrackHandle = mTrackHandle;
}
- private class SlidingHandler extends Handler {
+ private static class SlidingHandler extends Handler {
+
+ WeakReference<CustomSlidingDrawer> ref;
+
+ public SlidingHandler(CustomSlidingDrawer r){
+ ref = new WeakReference<CustomSlidingDrawer>(r);
+ }
+
public void handleMessage(Message m) {
switch (m.what) {
case MSG_ANIMATE:
- doAnimation();
+ if(ref.get() != null)
+ ref.get().doAnimation();
break;
}
}
diff --git a/src/com/savoirfairelinux/sflphone/views/TACGridView.java b/src/com/savoirfairelinux/sflphone/views/TACGridView.java
index 5298704..85a1e3a 100644
--- a/src/com/savoirfairelinux/sflphone/views/TACGridView.java
+++ b/src/com/savoirfairelinux/sflphone/views/TACGridView.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.util.AttributeSet;
-import android.view.View.MeasureSpec;
import android.widget.GridView;