replace ABS with AppCompat

// FREEBIE
This commit is contained in:
Jake McGinty
2014-06-28 20:40:57 -07:00
parent ff2ac8a66e
commit 7df49811b7
63 changed files with 499 additions and 511 deletions

View File

@@ -0,0 +1,36 @@
package org.thoughtcrime.securesms;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.HeaderViewListAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
public abstract class ActionBarListActivity extends ActionBarActivity {
private ListView mListView;
protected ListView getListView() {
if (mListView == null) {
mListView = (ListView) findViewById(android.R.id.list);
}
return mListView;
}
protected void setListAdapter(ListAdapter adapter) {
getListView().setAdapter(adapter);
}
protected ListAdapter getListAdapter() {
ListAdapter adapter = getListView().getAdapter();
if (adapter instanceof HeaderViewListAdapter) {
return ((HeaderViewListAdapter)adapter).getWrappedAdapter();
} else {
return adapter;
}
}
protected void onListItemClick(ListView lv, View v, int position, long id) {
getListView().getOnItemClickListener().onItemClick(lv, v, position, id);
}
}

View File

@@ -40,11 +40,15 @@ import android.preference.RingtonePreference;
import android.provider.ContactsContract;
import android.provider.Settings;
import android.provider.Telephony;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.preference.PreferenceFragment;
import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;
import com.actionbarsherlock.view.MenuItem;
import com.google.android.gms.gcm.GoogleCloudMessaging;
import org.thoughtcrime.securesms.components.OutgoingSmsPreference;
@@ -73,7 +77,7 @@ import java.io.IOException;
*
*/
public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPreferenceActivity
public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarActivity
implements SharedPreferences.OnSharedPreferenceChangeListener
{
private static final String TAG = "Preferences";
@@ -99,6 +103,55 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Fragment fragment = new ApplicationPreferenceFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(android.R.id.content, fragment);
fragmentTransaction.commit();
}
@Override
public void onResume() {
super.onResume();
dynamicTheme.onResume(this);
dynamicLanguage.onResume(this);
}
@Override
public void onDestroy() {
MemoryCleaner.clean((MasterSecret) getIntent().getParcelableExtra("master_secret"));
super.onDestroy();
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(TextSecurePreferences.THEME_PREF)) {
dynamicTheme.onResume(this);
} else if (key.equals(TextSecurePreferences.LANGUAGE_PREF)) {
dynamicLanguage.onResume(this);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, ConversationListActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
}
return false;
}
public static class ApplicationPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.preferences);
initializeIdentitySelection();
@@ -134,14 +187,12 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
public void onStart() {
super.onStart();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener((ApplicationPreferencesActivity)getActivity());
}
@Override
public void onResume() {
super.onResume();
dynamicTheme.onResume(this);
dynamicLanguage.onResume(this);
initializePlatformSpecificOptions();
}
@@ -149,13 +200,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
public void onStop() {
super.onStop();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onDestroy() {
MemoryCleaner.clean((MasterSecret) getIntent().getParcelableExtra("master_secret"));
super.onDestroy();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener((ApplicationPreferencesActivity)getActivity());
}
@Override
@@ -167,25 +212,11 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
if (resultCode == Activity.RESULT_OK) {
switch (reqCode) {
case PICK_IDENTITY_CONTACT: handleIdentitySelection(data); break;
case ENABLE_PASSPHRASE_ACTIVITY: finish(); break;
case ENABLE_PASSPHRASE_ACTIVITY: getActivity().finish(); break;
}
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, ConversationListActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
}
return false;
}
private void initializePlatformSpecificOptions() {
PreferenceGroup pushSmsCategory = (PreferenceGroup) findPreference("push_sms_category");
PreferenceGroup advancedCategory = (PreferenceGroup) findPreference("advanced_category");
@@ -198,13 +229,13 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
if (allSmsPreference != null) pushSmsCategory.removePreference(allSmsPreference);
if (allMmsPreference != null) pushSmsCategory.removePreference(allMmsPreference);
if (Util.isDefaultSmsProvider(this)) {
if (Util.isDefaultSmsProvider(getActivity())) {
defaultPreference.setIntent(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
defaultPreference.setTitle(getString(R.string.ApplicationPreferencesActivity_sms_enabled));
defaultPreference.setSummary(getString(R.string.ApplicationPreferencesActivity_touch_to_change_your_default_sms_app));
} else {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName());
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getActivity().getPackageName());
defaultPreference.setIntent(intent);
defaultPreference.setTitle(getString(R.string.ApplicationPreferencesActivity_sms_disabled));
defaultPreference.setSummary(getString(R.string.ApplicationPreferencesActivity_touch_to_make_textsecure_your_default_sms_app));
@@ -239,12 +270,12 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
private void initializePushMessagingToggle() {
CheckBoxPreference preference = (CheckBoxPreference)this.findPreference(PUSH_MESSAGING_PREF);
preference.setChecked(TextSecurePreferences.isPushRegistered(this));
preference.setChecked(TextSecurePreferences.isPushRegistered(getActivity()));
preference.setOnPreferenceChangeListener(new PushMessagingClickListener());
}
private void initializeIdentitySelection() {
ContactIdentityManager identity = ContactIdentityManager.getInstance(this);
ContactIdentityManager identity = ContactIdentityManager.getInstance(getActivity());
if (identity.isSelfIdentityAutoDetected()) {
Preference preference = this.findPreference(DISPLAY_CATEGORY_PREF);
@@ -253,7 +284,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
Uri contactUri = identity.getSelfIdentityUri();
if (contactUri != null) {
String contactName = ContactAccessor.getInstance().getNameFromContact(this, contactUri);
String contactName = ContactAccessor.getInstance().getNameFromContact(getActivity(), contactUri);
this.findPreference(TextSecurePreferences.IDENTITY_PREF)
.setSummary(String.format(getString(R.string.ApplicationPreferencesActivity_currently_s),
contactName));
@@ -271,7 +302,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
private void initializeRingtoneSummary(RingtonePreference pref) {
RingtoneSummaryListener listener =
(RingtoneSummaryListener) pref.getOnPreferenceChangeListener();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
listener.onPreferenceChange(pref, sharedPreferences.getString(pref.getKey(), ""));
}
@@ -284,20 +315,11 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
Uri contactUri = data.getData();
if (contactUri != null) {
TextSecurePreferences.setIdentityContactUri(this, contactUri.toString());
TextSecurePreferences.setIdentityContactUri(getActivity(), contactUri.toString());
initializeIdentitySelection();
}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(TextSecurePreferences.THEME_PREF)) {
dynamicTheme.onResume(this);
} else if (key.equals(TextSecurePreferences.LANGUAGE_PREF)) {
dynamicLanguage.onResume(this);
}
}
private class PushMessagingClickListener implements Preference.OnPreferenceChangeListener {
private static final int SUCCESS = 0;
@@ -313,7 +335,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(ApplicationPreferencesActivity.this,
dialog = ProgressDialog.show(getActivity(),
getString(R.string.ApplicationPreferencesActivity_unregistering),
getString(R.string.ApplicationPreferencesActivity_unregistering_for_data_based_communication),
true, false);
@@ -326,13 +348,13 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
switch (result) {
case NETWORK_ERROR:
Toast.makeText(ApplicationPreferencesActivity.this,
Toast.makeText(getActivity(),
getString(R.string.ApplicationPreferencesActivity_error_connecting_to_server),
Toast.LENGTH_LONG).show();
break;
case SUCCESS:
((CheckBoxPreference)preference).setChecked(false);
TextSecurePreferences.setPushRegistered(ApplicationPreferencesActivity.this, false);
TextSecurePreferences.setPushRegistered(getActivity(), false);
break;
}
}
@@ -340,7 +362,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
protected Integer doInBackground(Void... params) {
try {
Context context = ApplicationPreferencesActivity.this;
Context context = getActivity();
PushServiceSocket socket = PushServiceSocketFactory.create(context);
socket.unregisterGcmId();
@@ -360,8 +382,8 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
public boolean onPreferenceChange(final Preference preference, Object newValue) {
if (((CheckBoxPreference)preference).isChecked()) {
AlertDialog.Builder builder = new AlertDialog.Builder(ApplicationPreferencesActivity.this);
builder.setIcon(Dialogs.resolveIcon(ApplicationPreferencesActivity.this, R.attr.dialog_info_icon));
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setIcon(Dialogs.resolveIcon(getActivity(), R.attr.dialog_info_icon));
builder.setTitle(getString(R.string.ApplicationPreferencesActivity_disable_push_messages));
builder.setMessage(getString(R.string.ApplicationPreferencesActivity_this_will_disable_push_messages));
builder.setNegativeButton(android.R.string.cancel, null);
@@ -373,8 +395,8 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
});
builder.show();
} else {
Intent intent = new Intent(ApplicationPreferencesActivity.this, RegistrationActivity.class);
intent.putExtra("master_secret", getIntent().getParcelableExtra("master_secret"));
Intent intent = new Intent(getActivity(), RegistrationActivity.class);
intent.putExtra("master_secret", getActivity().getIntent().getParcelableExtra("master_secret"));
startActivity(intent);
}
@@ -396,10 +418,10 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
private class ChangePassphraseClickListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
if (MasterSecretUtil.isPassphraseInitialized(ApplicationPreferencesActivity.this)) {
startActivity(new Intent(ApplicationPreferencesActivity.this, PassphraseChangeActivity.class));
if (MasterSecretUtil.isPassphraseInitialized(getActivity())) {
startActivity(new Intent(getActivity(), PassphraseChangeActivity.class));
} else {
Toast.makeText(ApplicationPreferencesActivity.this,
Toast.makeText(getActivity(),
R.string.ApplicationPreferenceActivity_you_havent_set_a_passphrase_yet,
Toast.LENGTH_LONG).show();
}
@@ -411,8 +433,8 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
private class TrimNowClickListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
final int threadLengthLimit = TextSecurePreferences.getThreadTrimLength(ApplicationPreferencesActivity.this);
AlertDialog.Builder builder = new AlertDialog.Builder(ApplicationPreferencesActivity.this);
final int threadLengthLimit = TextSecurePreferences.getThreadTrimLength(getActivity());
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.ApplicationPreferencesActivity_delete_all_old_messages_now);
builder.setMessage(String.format(getString(R.string.ApplicationPreferencesActivity_are_you_sure_you_would_like_to_immediately_trim_all_conversation_threads_to_the_s_most_recent_messages),
threadLengthLimit));
@@ -420,7 +442,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Trimmer.trimAllThreads(ApplicationPreferencesActivity.this, threadLengthLimit);
Trimmer.trimAllThreads(getActivity(), threadLengthLimit);
}
});
@@ -436,31 +458,31 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
public boolean onPreferenceChange(final Preference preference, Object newValue) {
if (!((CheckBoxPreference)preference).isChecked()) {
AlertDialog.Builder builder = new AlertDialog.Builder(ApplicationPreferencesActivity.this);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.ApplicationPreferencesActivity_disable_storage_encryption);
builder.setMessage(R.string.ApplicationPreferencesActivity_warning_this_will_disable_storage_encryption_for_all_messages);
builder.setIcon(Dialogs.resolveIcon(ApplicationPreferencesActivity.this, R.attr.dialog_alert_icon));
builder.setIcon(Dialogs.resolveIcon(getActivity(), R.attr.dialog_alert_icon));
builder.setPositiveButton(R.string.ApplicationPreferencesActivity_disable, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MasterSecret masterSecret = getIntent().getParcelableExtra("master_secret");
MasterSecretUtil.changeMasterSecretPassphrase(ApplicationPreferencesActivity.this,
MasterSecret masterSecret = getActivity().getIntent().getParcelableExtra("master_secret");
MasterSecretUtil.changeMasterSecretPassphrase(getActivity(),
masterSecret,
MasterSecretUtil.UNENCRYPTED_PASSPHRASE);
TextSecurePreferences.setPasswordDisabled(ApplicationPreferencesActivity.this, true);
TextSecurePreferences.setPasswordDisabled(getActivity(), true);
((CheckBoxPreference)preference).setChecked(true);
Intent intent = new Intent(ApplicationPreferencesActivity.this, KeyCachingService.class);
Intent intent = new Intent(getActivity(), KeyCachingService.class);
intent.setAction(KeyCachingService.DISABLE_ACTION);
startService(intent);
getActivity().startService(intent);
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
} else {
Intent intent = new Intent(ApplicationPreferencesActivity.this,
Intent intent = new Intent(getActivity(),
PassphraseChangeActivity.class);
startActivityForResult(intent, ENABLE_PASSPHRASE_ACTIVITY);
}
@@ -504,7 +526,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
@Override
public boolean onPreferenceClick(Preference preference) {
startActivity(new Intent(ApplicationPreferencesActivity.this, MmsPreferencesActivity.class));
startActivity(new Intent(getActivity(), MmsPreferencesActivity.class));
return true;
}
}
@@ -534,10 +556,10 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
if (TextUtils.isEmpty(value)) {
preference.setSummary(R.string.preferences__default);
} else {
Ringtone tone = RingtoneManager.getRingtone(ApplicationPreferencesActivity.this,
Ringtone tone = RingtoneManager.getRingtone(getActivity(),
Uri.parse(value));
if (tone != null) {
preference.setSummary(tone.getTitle(ApplicationPreferencesActivity.this));
preference.setSummary(tone.getTitle(getActivity()));
}
}
@@ -548,7 +570,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
private class SubmitDebugLogListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
final Intent intent = new Intent(ApplicationPreferencesActivity.this, LogSubmitActivity.class);
final Intent intent = new Intent(getActivity(), LogSubmitActivity.class);
startActivity(intent);
return true;
}
@@ -566,9 +588,9 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
private String buildOutgoingSmsDescription() {
final StringBuilder builder = new StringBuilder();
final boolean dataFallback = TextSecurePreferences.isFallbackSmsAllowed(this);
final boolean dataFallbackAsk = TextSecurePreferences.isFallbackSmsAskRequired(this);
final boolean nonData = TextSecurePreferences.isDirectSmsAllowed(this);
final boolean dataFallback = TextSecurePreferences.isFallbackSmsAllowed(getActivity());
final boolean dataFallbackAsk = TextSecurePreferences.isFallbackSmsAskRequired(getActivity());
final boolean nonData = TextSecurePreferences.isDirectSmsAllowed(getActivity());
if (dataFallback) {
builder.append(getString(R.string.preferences__sms_outgoing_push_users));
@@ -593,8 +615,8 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredSherlockPr
if (preference!=null)
if (preference instanceof PreferenceScreen)
if (((PreferenceScreen)preference).getDialog()!=null)
((PreferenceScreen)preference).getDialog().getWindow().getDecorView().setBackgroundDrawable(this.getWindow().getDecorView().getBackground().getConstantState().newDrawable());
((PreferenceScreen)preference).getDialog().getWindow().getDecorView().setBackgroundDrawable(getActivity().getWindow().getDecorView().getBackground().getConstantState().newDrawable());
return false;
}
}
}

View File

@@ -22,13 +22,12 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.ActionBar.TabListener;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import org.thoughtcrime.securesms.util.DynamicTheme;
@@ -45,7 +44,7 @@ import static org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData;
* @author Moxie Marlinspike
*
*/
public class ContactSelectionActivity extends PassphraseRequiredSherlockFragmentActivity {
public class ContactSelectionActivity extends PassphraseRequiredActionBarActivity {
private final DynamicTheme dynamicTheme = new DynamicTheme();
@@ -78,7 +77,7 @@ public class ContactSelectionActivity extends PassphraseRequiredSherlockFragment
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.contact_selection, menu);
return true;

View File

@@ -19,6 +19,7 @@ package org.thoughtcrime.securesms;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.util.Log;
@@ -30,8 +31,6 @@ import android.widget.CursorAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.actionbarsherlock.app.SherlockListFragment;
import org.thoughtcrime.securesms.contacts.ContactAccessor;
import org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData;
import org.thoughtcrime.securesms.contacts.ContactAccessor.GroupData;
@@ -51,7 +50,7 @@ import java.util.List;
* @author Moxie Marlinspike
*
*/
public class ContactSelectionGroupsFragment extends SherlockListFragment
public class ContactSelectionGroupsFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor>
{

View File

@@ -22,10 +22,14 @@ import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckedTextView;
@@ -34,11 +38,6 @@ import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.thoughtcrime.securesms.contacts.ContactAccessor;
import org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData;
import org.thoughtcrime.securesms.contacts.ContactAccessor.NumberData;
@@ -59,7 +58,7 @@ import java.util.List;
*
*/
public class ContactSelectionListFragment extends SherlockListFragment
public class ContactSelectionListFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor>
{

View File

@@ -20,6 +20,7 @@ import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.CallLog.Calls;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
@@ -34,8 +35,6 @@ import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockListFragment;
import org.thoughtcrime.securesms.contacts.ContactAccessor;
import org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData;
import org.thoughtcrime.securesms.contacts.ContactAccessor.NumberData;
@@ -55,7 +54,7 @@ import java.util.List;
* @author Moxie Marlinspike
*
*/
public class ContactSelectionRecentFragment extends SherlockListFragment
public class ContactSelectionRecentFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor>
{

View File

@@ -43,6 +43,9 @@ import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextThemeWrapper;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
@@ -54,9 +57,6 @@ import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.google.protobuf.ByteString;
import org.thoughtcrime.securesms.components.EmojiDrawer;
@@ -127,7 +127,7 @@ import static org.whispersystems.textsecure.push.PushMessageProtos.PushMessageCo
* @author Moxie Marlinspike
*
*/
public class ConversationActivity extends PassphraseRequiredSherlockFragmentActivity
public class ConversationActivity extends PassphraseRequiredActionBarActivity
implements ConversationFragment.ConversationFragmentListener,
AttachmentManager.AttachmentListener
{
@@ -257,7 +257,7 @@ public class ConversationActivity extends PassphraseRequiredSherlockFragmentActi
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
boolean pushRegistered = TextSecurePreferences.isPushRegistered(this);
@@ -621,7 +621,7 @@ public class ConversationActivity extends PassphraseRequiredSherlockFragmentActi
if (subtitle != null && !Util.isEmpty(subtitle))
this.getSupportActionBar().setSubtitle(PhoneNumberUtils.formatNumber(subtitle));
this.invalidateOptionsMenu();
this.supportInvalidateOptionsMenu();
}
private void initializeDraft() {

View File

@@ -8,11 +8,17 @@ import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.view.ActionMode;
import android.text.ClipboardManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.widget.CursorAdapter;
@@ -20,12 +26,6 @@ import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.view.ActionMode;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.loaders.ConversationLoader;
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
@@ -44,7 +44,7 @@ import org.whispersystems.textsecure.util.FutureTaskListener;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class ConversationFragment extends SherlockListFragment
public class ConversationFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor>
{
private static final String TAG = ConversationFragment.class.getSimpleName();
@@ -104,7 +104,7 @@ public class ConversationFragment extends SherlockListFragment
return false;
}
actionMode = getSherlockActivity().startActionMode(actionModeCallback);
actionMode = ((ActionBarActivity)getActivity()).startSupportActionMode(actionModeCallback);
view.setSelected(true);
return true;
}
@@ -209,12 +209,12 @@ public class ConversationFragment extends SherlockListFragment
builder.setCancelable(true);
if (dateReceived == dateSent || message.isOutgoing()) {
builder.setMessage(String.format(getSherlockActivity()
builder.setMessage(String.format(getActivity()
.getString(R.string.ConversationFragment_transport_s_sent_received_s),
transport.toUpperCase(),
dateFormatter.format(new Date(dateSent))));
} else {
builder.setMessage(String.format(getSherlockActivity()
builder.setMessage(String.format(getActivity()
.getString(R.string.ConversationFragment_sender_s_transport_s_sent_s_received_s),
message.getIndividualRecipient().getNumber(),
transport.toUpperCase(),

View File

@@ -22,10 +22,21 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import android.provider.Telephony;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.widget.SearchView;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import org.thoughtcrime.securesms.service.DirectoryRefreshListener;
import org.thoughtcrime.securesms.database.DatabaseFactory;
@@ -41,7 +52,7 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.textsecure.crypto.MasterSecret;
public class ConversationListActivity extends PassphraseRequiredSherlockFragmentActivity
public class ConversationListActivity extends PassphraseRequiredActionBarActivity
implements ConversationListFragment.ConversationSelectedListener
{
private final DynamicTheme dynamicTheme = new DynamicTheme ();
@@ -97,17 +108,45 @@ public class ConversationListActivity extends PassphraseRequiredSherlockFragment
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
inflater.inflate(R.menu.text_secure_normal, menu);
menu.findItem(R.id.menu_clear_passphrase).setVisible(!TextSecurePreferences.isPasswordDisabled(this));
if (this.masterSecret != null) {
inflater.inflate(R.menu.conversation_list, menu);
MenuItem menuItem = menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
initializeSearch(searchView);
} else {
inflater.inflate(R.menu.conversation_list_empty, menu);
}
super.onPrepareOptionsMenu(menu);
return true;
}
private void initializeSearch(SearchView searchView) {
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
ConversationListFragment fragment = (ConversationListFragment)getSupportFragmentManager()
.findFragmentById(R.id.fragment_content);
if (fragment != null) {
fragment.setQueryFilter(query);
return true;
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return onQueryTextSubmit(newText);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
@@ -221,7 +260,7 @@ public class ConversationListActivity extends PassphraseRequiredSherlockFragment
this.masterSecret = getIntent().getParcelableExtra("master_secret");
this.fragment = (ConversationListFragment)this.getSupportFragmentManager()
.findFragmentById(R.id.fragment_content);
.findFragmentById(R.id.fragment_content);
this.fragment.setMasterSecret(masterSecret);
}

View File

@@ -23,22 +23,25 @@ import android.content.DialogInterface;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.text.TextUtils;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.view.ActionMode;
import android.support.v7.widget.SearchView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.CursorAdapter;
import android.widget.ListView;
import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.view.ActionMode;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.widget.SearchView;
import org.thoughtcrime.securesms.components.DefaultSmsReminder;
import org.thoughtcrime.securesms.components.PushRegistrationReminder;
import org.thoughtcrime.securesms.components.ReminderView;
@@ -53,7 +56,7 @@ import org.whispersystems.textsecure.crypto.MasterSecret;
import java.util.Set;
public class ConversationListFragment extends SherlockListFragment
public class ConversationListFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor>, ActionMode.Callback
{
@@ -102,20 +105,6 @@ public class ConversationListFragment extends SherlockListFragment
this.listener = (ConversationSelectedListener)activity;
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSherlockActivity().getSupportMenuInflater();
if (this.masterSecret != null) {
inflater.inflate(R.menu.conversation_list, menu);
initializeSearch((SearchView)menu.findItem(R.id.menu_search).getActionView());
} else {
inflater.inflate(R.menu.conversation_list_empty, menu);
}
super.onPrepareOptionsMenu(menu);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
if (v instanceof ConversationListItem) {
@@ -146,27 +135,15 @@ public class ConversationListFragment extends SherlockListFragment
}
}
private void setQueryFilter(String query) {
public void setQueryFilter(String query) {
this.queryFilter = query;
getLoaderManager().restartLoader(0, null, this);
}
private void initializeSearch(SearchView searchView) {
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if (isAdded()) {
setQueryFilter(query);
return true;
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return onQueryTextSubmit(newText);
}
});
public void resetQueryFilter() {
if (!TextUtils.isEmpty(this.queryFilter)) {
setQueryFilter("");
}
}
private void initializeBatchListener() {
@@ -174,7 +151,7 @@ public class ConversationListFragment extends SherlockListFragment
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View v, int position, long id) {
ConversationListAdapter adapter = (ConversationListAdapter)getListAdapter();
actionMode = getSherlockActivity().startActionMode(ConversationListFragment.this);
actionMode = ((ActionBarActivity)getActivity()).startSupportActionMode(ConversationListFragment.this);
adapter.initializeBatchMode(true);
adapter.toggleThreadInBatchSet(((ConversationListItem) v).getThreadId());
@@ -223,8 +200,8 @@ public class ConversationListFragment extends SherlockListFragment
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(getActivity(),
getSherlockActivity().getString(R.string.ConversationListFragment_deleting),
getSherlockActivity().getString(R.string.ConversationListFragment_deleting_selected_threads),
getActivity().getString(R.string.ConversationListFragment_deleting),
getActivity().getString(R.string.ConversationListFragment_deleting_selected_threads),
true, false);
}
@@ -289,7 +266,7 @@ public class ConversationListFragment extends SherlockListFragment
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = getSherlockActivity().getSupportMenuInflater();
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.conversation_list_batch, menu);
mode.setTitle(R.string.conversation_fragment_cab__batch_selection_mode);

View File

@@ -3,11 +3,11 @@ package org.thoughtcrime.securesms;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import org.thoughtcrime.securesms.util.DynamicTheme;
public class CountrySelectionActivity extends SherlockFragmentActivity
public class CountrySelectionActivity extends FragmentActivity
implements CountrySelectionFragment.CountrySelectedListener
{

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.text.Editable;
@@ -13,14 +14,13 @@ import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import com.actionbarsherlock.app.SherlockListFragment;
import org.thoughtcrime.securesms.database.loaders.CountryListLoader;
import java.util.ArrayList;
import java.util.Map;
public class CountrySelectionFragment extends SherlockListFragment implements LoaderManager.LoaderCallbacks<ArrayList<Map<String, String>>> {
public class CountrySelectionFragment extends ListFragment implements LoaderManager.LoaderCallbacks<ArrayList<Map<String, String>>> {
private EditText countryFilter;
private CountrySelectedListener listener;

View File

@@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.database.SmsMigrator.ProgressDescription;
import org.thoughtcrime.securesms.service.ApplicationMigrationService;
import org.thoughtcrime.securesms.service.ApplicationMigrationService.ImportState;
public class DatabaseMigrationActivity extends PassphraseRequiredSherlockActivity {
public class DatabaseMigrationActivity extends PassphraseRequiredActionBarActivity {
private final ImportServiceConnection serviceConnection = new ImportServiceConnection();
private final ImportStateHandler importStateHandler = new ImportStateHandler();

View File

@@ -7,13 +7,13 @@ import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockFragment;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.thoughtcrime.securesms.util.Dialogs;
//import org.thoughtcrime.securesms.database.EncryptedBackupExporter;
@@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.database.PlaintextBackupExporter;
import java.io.IOException;
public class ExportFragment extends SherlockFragment {
public class ExportFragment extends Fragment {
private static final int SUCCESS = 0;
private static final int NO_SD_CARD = 1;

View File

@@ -31,6 +31,9 @@ import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.util.Pair;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
@@ -38,9 +41,6 @@ import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.google.protobuf.ByteString;
import org.thoughtcrime.securesms.components.PushRecipientsPanel;
@@ -88,7 +88,7 @@ import static org.whispersystems.textsecure.push.PushMessageProtos.PushMessageCo
*
* @author Jake McGinty
*/
public class GroupCreateActivity extends PassphraseRequiredSherlockFragmentActivity {
public class GroupCreateActivity extends PassphraseRequiredActionBarActivity {
private final static String TAG = GroupCreateActivity.class.getSimpleName();
@@ -294,7 +294,7 @@ public class GroupCreateActivity extends PassphraseRequiredSherlockFragmentActiv
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
inflater.inflate(R.menu.group_create, menu);

View File

@@ -6,14 +6,13 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.view.MenuItem;
import android.support.v7.app.ActionBar;
import android.view.MenuItem;
import org.whispersystems.textsecure.crypto.MasterSecret;
public class ImportExportActivity extends PassphraseRequiredSherlockFragmentActivity {
public class ImportExportActivity extends PassphraseRequiredActionBarActivity {
private TabPagerAdapter tabPagerAdapter;
private ViewPager viewPager;

View File

@@ -7,13 +7,13 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockFragment;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.thoughtcrime.securesms.util.Dialogs;
import org.thoughtcrime.securesms.database.EncryptedBackupExporter;
@@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.service.KeyCachingService;
import java.io.IOException;
public class ImportFragment extends SherlockFragment {
public class ImportFragment extends Fragment {
private static final int SUCCESS = 0;
private static final int NO_SD_CARD = 1;

View File

@@ -18,6 +18,9 @@ package org.thoughtcrime.securesms;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
import org.whispersystems.libaxolotl.IdentityKey;
@@ -25,9 +28,6 @@ import org.whispersystems.textsecure.util.Base64;
import org.thoughtcrime.securesms.util.Dialogs;
import org.thoughtcrime.securesms.util.DynamicTheme;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.whispersystems.textsecure.zxing.integration.IntentIntegrator;
import org.whispersystems.textsecure.zxing.integration.IntentResult;
@@ -36,7 +36,7 @@ import org.whispersystems.textsecure.zxing.integration.IntentResult;
*
* @author Moxie Marlinspike
*/
public abstract class KeyScanningActivity extends PassphraseRequiredSherlockActivity {
public abstract class KeyScanningActivity extends PassphraseRequiredActionBarActivity {
private final DynamicTheme dynamicTheme = new DynamicTheme();
@@ -56,7 +56,7 @@ public abstract class KeyScanningActivity extends PassphraseRequiredSherlockActi
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
inflater.inflate(R.menu.key_scanning, menu);

View File

@@ -1,6 +1,7 @@
package org.thoughtcrime.securesms;
import android.app.AlertDialog;
import android.support.v7.app.ActionBarActivity;
import android.text.ClipboardManager;
import android.content.DialogInterface;
import android.os.AsyncTask;
@@ -8,14 +9,13 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;
import com.google.thoughtcrimegson.Gson;
import com.google.thoughtcrimegson.JsonIOException;
import com.google.thoughtcrimegson.JsonSyntaxException;
@@ -38,7 +38,7 @@ import java.util.Map;
/**
* Activity for submitting logcat logs to a pastebin service.
*/
public class LogSubmitActivity extends SherlockActivity {
public class LogSubmitActivity extends ActionBarActivity {
private static final String TAG = LogSubmitActivity.class.getSimpleName();
private static final String HASTEBIN_ENDPOINT = "http://hastebin.com/documents";

View File

@@ -25,21 +25,19 @@ import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.Toast;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.providers.PartProvider;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.DateUtils;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.SaveAttachmentTask;
import org.thoughtcrime.securesms.util.SaveAttachmentTask.Attachment;
import org.whispersystems.textsecure.crypto.MasterSecret;
@@ -52,14 +50,13 @@ import uk.co.senab.photoview.PhotoViewAttacher;
/**
* Activity for displaying media attachments in-app
*/
public class MediaPreviewActivity extends PassphraseRequiredSherlockActivity {
public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity {
private final static String TAG = MediaPreviewActivity.class.getSimpleName();
public final static String MASTER_SECRET_EXTRA = "master_secret";
public final static String RECIPIENT_EXTRA = "recipient";
public final static String DATE_EXTRA = "date";
private final DynamicTheme dynamicTheme = new DynamicTheme();
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
private MasterSecret masterSecret;
@@ -76,17 +73,17 @@ public class MediaPreviewActivity extends PassphraseRequiredSherlockActivity {
setFullscreenIfPossible();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
dynamicTheme.onCreate(this);
dynamicLanguage.onCreate(this);
this.setTheme(R.style.TextSecure_DarkTheme);
super.onCreate(bundle);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.media_preview_activity);
initializeResources();
}
@TargetApi(VERSION_CODES.HONEYCOMB)
@TargetApi(VERSION_CODES.JELLY_BEAN)
private void setFullscreenIfPossible() {
if (VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB) {
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
}
}
@@ -94,11 +91,9 @@ public class MediaPreviewActivity extends PassphraseRequiredSherlockActivity {
@Override
public void onResume() {
super.onResume();
dynamicTheme.onResume(this);
dynamicLanguage.onResume(this);
masterSecret = getIntent().getParcelableExtra(MASTER_SECRET_EXTRA);
mediaUri = getIntent().getData();
mediaType = getIntent().getType();
recipient = getIntent().getParcelableExtra(RECIPIENT_EXTRA);
@@ -175,7 +170,7 @@ public class MediaPreviewActivity extends PassphraseRequiredSherlockActivity {
super.onPrepareOptionsMenu(menu);
menu.clear();
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.media_preview, menu);
return true;

View File

@@ -18,21 +18,18 @@ package org.thoughtcrime.securesms;
import android.content.Intent;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.widget.Toast;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.MenuItem;
import com.actionbarsherlock.view.MenuItem;
import org.thoughtcrime.securesms.mms.IncomingMmsConnection;
import org.thoughtcrime.securesms.service.SendReceiveService;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.MemoryCleaner;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.textsecure.crypto.MasterSecret;
public class MmsPreferencesActivity extends PassphraseRequiredSherlockPreferenceActivity {
public class MmsPreferencesActivity extends PassphraseRequiredActionBarActivity {
private MasterSecret masterSecret;
@@ -46,11 +43,15 @@ public class MmsPreferencesActivity extends PassphraseRequiredSherlockPreference
super.onCreate(icicle);
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
initializePreferences();
masterSecret = getIntent().getParcelableExtra("master_secret");
initializeEditTextSummaries();
Fragment fragment = new MmsPreferencesFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(android.R.id.content, fragment);
fragmentTransaction.commit();
}
@Override
@@ -85,51 +86,9 @@ public class MmsPreferencesActivity extends PassphraseRequiredSherlockPreference
super.onBackPressed();
}
private void initializePreferences() {
if (!IncomingMmsConnection.isConnectionPossible(this, null)) {
TextSecurePreferences.setUseLocalApnsEnabled(this, true);
addPreferencesFromResource(R.xml.mms_preferences);
this.findPreference(TextSecurePreferences.ENABLE_MANUAL_MMS_PREF).setOnPreferenceChangeListener(new OverrideMmsChangeListener());
} else {
addPreferencesFromResource(R.xml.mms_preferences);
}
}
private void initializeEditTextSummary(final EditTextPreference preference) {
if (preference.getText() == null) {
preference.setSummary("Not set");
} else {
preference.setSummary(preference.getText());
}
preference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference pref, Object newValue) {
preference.setSummary(newValue == null ? "Not set" : ((String) newValue));
return true;
}
});
}
private void initializeEditTextSummaries() {
initializeEditTextSummary((EditTextPreference)this.findPreference(TextSecurePreferences.MMSC_HOST_PREF));
initializeEditTextSummary((EditTextPreference)this.findPreference(TextSecurePreferences.MMSC_PROXY_HOST_PREF));
initializeEditTextSummary((EditTextPreference)this.findPreference(TextSecurePreferences.MMSC_PROXY_PORT_PREF));
}
private void handleDownloadMmsPendingApn() {
Intent intent = new Intent(this, SendReceiveService.class);
intent.setAction(SendReceiveService.DOWNLOAD_MMS_PENDING_APN_ACTION);
startService(intent);
}
private class OverrideMmsChangeListener implements Preference.OnPreferenceChangeListener {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
TextSecurePreferences.setUseLocalApnsEnabled(MmsPreferencesActivity.this, true);
Toast.makeText(MmsPreferencesActivity.this, R.string.mms_preferences_activity__manual_mms_settings_are_required, Toast.LENGTH_SHORT).show();
return false;
}
}
}

View File

@@ -0,0 +1,78 @@
/**
* Copyright (C) 2014 Open Whisper Systems
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.thoughtcrime.securesms;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.support.v4.preference.PreferenceFragment;
import android.widget.Toast;
import org.thoughtcrime.securesms.mms.OutgoingMmsConnection;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
public class MmsPreferencesFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
initializePreferences();
initializeEditTextSummaries();
}
private void initializePreferences() {
if (!OutgoingMmsConnection.isConnectionPossible(getActivity())) {
TextSecurePreferences.setUseLocalApnsEnabled(getActivity(), true);
addPreferencesFromResource(R.xml.mms_preferences);
this.findPreference(TextSecurePreferences.ENABLE_MANUAL_MMS_PREF).setOnPreferenceChangeListener(new OverrideMmsChangeListener());
} else {
addPreferencesFromResource(R.xml.mms_preferences);
}
}
private void initializeEditTextSummary(final EditTextPreference preference) {
if (preference.getText() == null) {
preference.setSummary("Not set");
} else {
preference.setSummary(preference.getText());
}
preference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference pref, Object newValue) {
preference.setSummary(newValue == null ? "Not set" : ((String) newValue));
return true;
}
});
}
private void initializeEditTextSummaries() {
initializeEditTextSummary((EditTextPreference)this.findPreference(TextSecurePreferences.MMSC_HOST_PREF));
initializeEditTextSummary((EditTextPreference)this.findPreference(TextSecurePreferences.MMSC_PROXY_HOST_PREF));
initializeEditTextSummary((EditTextPreference)this.findPreference(TextSecurePreferences.MMSC_PROXY_PORT_PREF));
}
private class OverrideMmsChangeListener implements Preference.OnPreferenceChangeListener {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
TextSecurePreferences.setUseLocalApnsEnabled(getActivity(), true);
Toast.makeText(getActivity(), R.string.mms_preferences_activity__manual_mms_settings_are_required, Toast.LENGTH_SHORT).show();
return false;
}
}
}

View File

@@ -19,10 +19,9 @@ package org.thoughtcrime.securesms;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import org.thoughtcrime.securesms.contacts.ContactAccessor;
import org.thoughtcrime.securesms.database.DatabaseFactory;
@@ -50,7 +49,7 @@ import static org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData;
* @author Moxie Marlinspike
*
*/
public class NewConversationActivity extends PassphraseRequiredSherlockFragmentActivity {
public class NewConversationActivity extends PassphraseRequiredActionBarActivity {
private final static String TAG = "ContactSelectActivity";
public final static String MASTER_SECRET_EXTRA = "master_secret";
@@ -83,7 +82,7 @@ public class NewConversationActivity extends PassphraseRequiredSherlockFragmentA
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
if (TextSecurePreferences.isPushRegistered(this)) inflater.inflate(R.menu.push_directory, menu);

View File

@@ -21,19 +21,19 @@ import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.support.v7.app.ActionBarActivity;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.thoughtcrime.securesms.service.KeyCachingService;
import org.thoughtcrime.securesms.util.MemoryCleaner;
import com.actionbarsherlock.app.SherlockActivity;
/**
* Base Activity for changing/prompting local encryption passphrase.
*
* @author Moxie Marlinspike
*/
public abstract class PassphraseActivity extends SherlockActivity {
public abstract class PassphraseActivity extends ActionBarActivity {
private KeyCachingService keyCachingService;
private MasterSecret masterSecret;

View File

@@ -20,13 +20,7 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import android.support.v7.app.ActionBar;
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
import org.thoughtcrime.securesms.util.TextSecurePreferences;

View File

@@ -20,6 +20,7 @@ import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.text.Editable;
import android.text.SpannableString;
import android.text.Spanned;
@@ -27,6 +28,9 @@ import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.TypefaceSpan;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
@@ -35,11 +39,6 @@ import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.thoughtcrime.securesms.crypto.InvalidPassphraseException;
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
import org.thoughtcrime.securesms.util.MemoryCleaner;
@@ -65,7 +64,7 @@ public class PassphrasePromptActivity extends PassphraseActivity {
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
inflater.inflate(R.menu.log_submit, menu);

View File

@@ -1,12 +1,11 @@
package org.thoughtcrime.securesms;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import org.whispersystems.textsecure.crypto.MasterSecret;
import com.actionbarsherlock.app.SherlockActivity;
public class PassphraseRequiredSherlockActivity extends SherlockActivity implements PassphraseRequiredActivity {
public class PassphraseRequiredActionBarActivity extends ActionBarActivity implements PassphraseRequiredActivity {
private final PassphraseRequiredMixin delegate = new PassphraseRequiredMixin();

View File

@@ -1,44 +0,0 @@
package org.thoughtcrime.securesms;
import android.os.Bundle;
import org.whispersystems.textsecure.crypto.MasterSecret;
import com.actionbarsherlock.app.SherlockFragmentActivity;
public class PassphraseRequiredSherlockFragmentActivity extends SherlockFragmentActivity implements PassphraseRequiredActivity {
private final PassphraseRequiredMixin delegate = new PassphraseRequiredMixin();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
delegate.onCreate(this);
}
@Override
protected void onResume() {
super.onResume();
delegate.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
delegate.onPause(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
delegate.onDestroy(this);
}
@Override
public void onMasterSecretCleared() {
finish();
}
@Override
public void onNewMasterSecret(MasterSecret masterSecret) {}
}

View File

@@ -1,12 +1,12 @@
package org.thoughtcrime.securesms;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import org.whispersystems.textsecure.crypto.MasterSecret;
import com.actionbarsherlock.app.SherlockListActivity;
public class PassphraseRequiredSherlockListActivity extends SherlockListActivity implements PassphraseRequiredActivity {
public class PassphraseRequiredSherlockListActivity extends ActionBarListActivity implements PassphraseRequiredActivity {
private final PassphraseRequiredMixin delegate = new PassphraseRequiredMixin();

View File

@@ -1,48 +0,0 @@
package org.thoughtcrime.securesms;
import android.os.Bundle;
import org.whispersystems.textsecure.crypto.MasterSecret;
import com.actionbarsherlock.app.SherlockPreferenceActivity;
public abstract class PassphraseRequiredSherlockPreferenceActivity
extends SherlockPreferenceActivity
implements PassphraseRequiredActivity
{
private final PassphraseRequiredMixin delegate = new PassphraseRequiredMixin();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
delegate.onCreate(this);
}
@Override
protected void onResume() {
super.onResume();
delegate.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
delegate.onPause(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
delegate.onDestroy(this);
}
@Override
public void onMasterSecretCleared() {
finish();
}
@Override
public void onNewMasterSecret(MasterSecret masterSecret) {}
}

View File

@@ -5,7 +5,7 @@ import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class PromptMmsActivity extends PassphraseRequiredSherlockActivity {
public class PromptMmsActivity extends PassphraseRequiredActionBarActivity {
private Button okButton;
private Button cancelButton;

View File

@@ -19,15 +19,15 @@ package org.thoughtcrime.securesms;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import org.thoughtcrime.securesms.util.DirectoryHelper;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import java.util.ArrayList;
import java.util.List;
@@ -40,7 +40,7 @@ import static org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData;
* @author Moxie Marlinspike
*
*/
public class PushContactSelectionActivity extends PassphraseRequiredSherlockFragmentActivity {
public class PushContactSelectionActivity extends PassphraseRequiredActionBarActivity {
private final static String TAG = "ContactSelectActivity";
public final static String PUSH_ONLY_EXTRA = "push_only";
@@ -71,7 +71,7 @@ public class PushContactSelectionActivity extends PassphraseRequiredSherlockFrag
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
if (TextSecurePreferences.isPushRegistered(this)) inflater.inflate(R.menu.push_directory, menu);

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.TextWatcher;
@@ -17,7 +18,6 @@ import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockActivity;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.i18n.phonenumbers.AsYouTypeFormatter;
@@ -38,7 +38,7 @@ import org.whispersystems.textsecure.util.Util;
* @author Moxie Marlinspike
*
*/
public class RegistrationActivity extends SherlockActivity {
public class RegistrationActivity extends ActionBarActivity {
private static final int PICK_COUNTRY = 1;

View File

@@ -1,12 +1,12 @@
package org.thoughtcrime.securesms;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import com.actionbarsherlock.app.SherlockActivity;
public class RegistrationProblemsActivity extends SherlockActivity {
public class RegistrationProblemsActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle bundle) {

View File

@@ -13,6 +13,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
@@ -28,7 +29,6 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockActivity;
import org.thoughtcrime.securesms.push.PushServiceSocketFactory;
import org.thoughtcrime.securesms.service.RegistrationService;
@@ -45,7 +45,7 @@ import java.io.IOException;
import static org.thoughtcrime.securesms.service.RegistrationService.RegistrationState;
public class RegistrationProgressActivity extends SherlockActivity {
public class RegistrationProgressActivity extends ActionBarActivity {
private static final int FOCUSED_COLOR = Color.parseColor("#ff333333");
private static final int UNFOCUSED_COLOR = Color.parseColor("#ff808080");

View File

@@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.textsecure.crypto.MasterSecret;
public class RoutingActivity extends PassphraseRequiredSherlockActivity {
public class RoutingActivity extends PassphraseRequiredActionBarActivity {
private static final int STATE_CREATE_PASSPHRASE = 1;
private static final int STATE_PROMPT_PASSPHRASE = 2;

View File

@@ -21,12 +21,11 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.WindowManager;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;
@@ -39,7 +38,7 @@ import org.whispersystems.textsecure.crypto.MasterSecret;
*
* @author Jake McGinty
*/
public class ShareActivity extends PassphraseRequiredSherlockFragmentActivity
public class ShareActivity extends PassphraseRequiredActionBarActivity
implements ShareFragment.ConversationSelectedListener
{
public final static String MASTER_SECRET_EXTRA = "master_secret";
@@ -88,7 +87,7 @@ public class ShareActivity extends PassphraseRequiredSherlockFragmentActivity
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
menu.clear();
inflater.inflate(R.menu.share, menu);

View File

@@ -19,6 +19,7 @@ package org.thoughtcrime.securesms;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
@@ -27,7 +28,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.actionbarsherlock.app.SherlockListFragment;
import org.thoughtcrime.securesms.database.loaders.ConversationListLoader;
import org.thoughtcrime.securesms.recipients.Recipients;
@@ -38,7 +38,7 @@ import org.whispersystems.textsecure.crypto.MasterSecret;
*
* @author Jake McGinty
*/
public class ShareFragment extends SherlockListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
public class ShareFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
private ConversationSelectedListener listener;
private MasterSecret masterSecret;

View File

@@ -18,10 +18,10 @@
package org.thoughtcrime.securesms;
import android.os.Bundle;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
import org.whispersystems.textsecure.crypto.IdentityKeyParcelable;
@@ -45,7 +45,7 @@ public class ViewLocalIdentityActivity extends ViewIdentityActivity {
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuInflater inflater = this.getSupportMenuInflater();
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.local_identity, menu);
return true;

View File

@@ -31,13 +31,7 @@ public class DynamicTheme {
private static int getSelectedTheme(Activity activity) {
String theme = TextSecurePreferences.getTheme(activity);
if (theme.equals("light")) {
if (activity instanceof ConversationActivity) return R.style.TextSecure_LightTheme_ConversationActivity;
else return R.style.TextSecure_LightTheme;
} else if (theme.equals("dark")) {
if (activity instanceof ConversationActivity) return R.style.TextSecure_DarkTheme_ConversationActivity;
else return R.style.TextSecure_DarkTheme;
}
if (theme.equals("dark")) return R.style.TextSecure_DarkTheme;
return R.style.TextSecure_LightTheme;
}