improved theme

This commit is contained in:
Mariotaku Lee 2017-02-05 21:42:20 +08:00
parent 78aa286a5a
commit 291e345788
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
61 changed files with 529 additions and 309 deletions

View File

@ -41,6 +41,7 @@ import android.widget.TextView;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.adapter.ArrayAdapter;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.fragment.iface.ISupportDialogFragmentCallback;
import org.mariotaku.twidere.util.DataImportExportUtils;
@ -124,6 +125,7 @@ public final class DataExportImportTypeSelectorDialogFragment extends BaseDialog
@Override
public final void onShow(final DialogInterface dialog) {
AlertDialogExtensionsKt.applyTheme((AlertDialog) dialog);
updatePositiveButton(dialog);
}

View File

@ -1,102 +0,0 @@
/*
* Twidere - Twitter client for Android
*
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
*
* 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.mariotaku.twidere.fragment;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AlertDialog;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
import static org.mariotaku.twidere.constant.IntentConstants.EXTRA_ACCOUNT_KEY;
import static org.mariotaku.twidere.constant.IntentConstants.EXTRA_NAME;
import static org.mariotaku.twidere.constant.IntentConstants.EXTRA_SEARCH_ID;
public class DestroySavedSearchDialogFragment extends BaseDialogFragment implements
DialogInterface.OnClickListener {
public static final String FRAGMENT_TAG = "destroy_saved_search";
@Override
public void onClick(final DialogInterface dialog, final int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
final UserKey accountKey = getAccountKey();
final long searchId = getSearchId();
final AsyncTwitterWrapper twitter = twitterWrapper;
if (searchId <= 0) return;
twitter.destroySavedSearchAsync(accountKey, searchId);
break;
default:
break;
}
}
@NonNull
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
final Context context = getActivity();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
final String name = getSearchName();
if (name != null) {
builder.setTitle(getString(R.string.destroy_saved_search, name));
builder.setMessage(getString(R.string.destroy_saved_search_confirm_message, name));
}
builder.setPositiveButton(android.R.string.ok, this);
builder.setNegativeButton(android.R.string.cancel, null);
return builder.create();
}
private UserKey getAccountKey() {
final Bundle args = getArguments();
return args.getParcelable(EXTRA_ACCOUNT_KEY);
}
private long getSearchId() {
final Bundle args = getArguments();
if (!args.containsKey(EXTRA_SEARCH_ID)) return -1;
return args.getLong(EXTRA_SEARCH_ID);
}
private String getSearchName() {
final Bundle args = getArguments();
if (!args.containsKey(EXTRA_NAME)) return null;
return args.getString(EXTRA_NAME);
}
public static DestroySavedSearchDialogFragment show(final FragmentManager fm,
final UserKey accountKey,
final long searchId, final String name) {
final Bundle args = new Bundle();
args.putParcelable(EXTRA_ACCOUNT_KEY, accountKey);
args.putLong(EXTRA_SEARCH_ID, searchId);
args.putString(EXTRA_NAME, name);
final DestroySavedSearchDialogFragment f = new DestroySavedSearchDialogFragment();
f.setArguments(args);
f.show(fm, FRAGMENT_TAG);
return f;
}
}

View File

@ -1,83 +0,0 @@
/*
* Twidere - Twitter client for Android
*
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
*
* 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.mariotaku.twidere.fragment;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AlertDialog;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.model.ParcelableUserList;
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
import static org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER_LIST;
public class DestroyUserListDialogFragment extends BaseDialogFragment implements DialogInterface.OnClickListener {
public static final String FRAGMENT_TAG = "destroy_user_list";
@Override
public void onClick(final DialogInterface dialog, final int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
final ParcelableUserList userList = getUserList();
final AsyncTwitterWrapper twitter = twitterWrapper;
if (userList == null) return;
twitter.destroyUserListAsync(userList.account_key, userList.id);
break;
default:
break;
}
}
@NonNull
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
final Context context = getActivity();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
final ParcelableUserList userList = getUserList();
if (userList != null) {
builder.setTitle(getString(R.string.delete_user_list, userList.name));
builder.setMessage(getString(R.string.delete_user_list_confirm_message, userList.name));
}
builder.setPositiveButton(android.R.string.ok, this);
builder.setNegativeButton(android.R.string.cancel, null);
return builder.create();
}
private ParcelableUserList getUserList() {
final Bundle args = getArguments();
if (!args.containsKey(EXTRA_USER_LIST)) return null;
return args.getParcelable(EXTRA_USER_LIST);
}
public static DestroyUserListDialogFragment show(final FragmentManager fm, final ParcelableUserList user_list) {
final Bundle args = new Bundle();
args.putParcelable(EXTRA_USER_LIST, user_list);
final DestroyUserListDialogFragment f = new DestroyUserListDialogFragment();
f.setArguments(args);
f.show(fm, FRAGMENT_TAG);
return f;
}
}

View File

@ -19,7 +19,6 @@
package org.mariotaku.twidere.fragment;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
@ -35,6 +34,7 @@ import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v7.app.AlertDialog;
import android.text.TextUtils.TruncateAt;
import android.view.View;
import android.view.ViewGroup;
@ -45,6 +45,7 @@ import android.widget.TextView;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.adapter.ArrayAdapter;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.fragment.iface.ISupportDialogFragmentCallback;
import org.mariotaku.twidere.util.ThemeUtils;
import org.mariotaku.twidere.util.TwidereArrayUtils;
@ -117,8 +118,15 @@ public class FileSelectorDialogFragment extends BaseDialogFragment implements Lo
builder.setPositiveButton(android.R.string.ok, this);
}
final AlertDialog dialog = builder.create();
final ListView listView = dialog.getListView();
listView.setOnItemClickListener(this);
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
final AlertDialog alertDialog = (AlertDialog) dialog;
AlertDialogExtensionsKt.applyTheme(alertDialog);
final ListView listView = alertDialog.getListView();
listView.setOnItemClickListener(FileSelectorDialogFragment.this);
}
});
return dialog;
}

View File

@ -39,6 +39,7 @@ import android.view.MenuItem;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.activity.KeyboardShortcutPreferenceCompatActivity;
import org.mariotaku.twidere.constant.KeyboardShortcutConstants;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutSpec;
@ -146,7 +147,14 @@ public class KeyboardShortcutsFragment extends BasePreferenceFragment implements
builder.setMessage(R.string.reset_keyboard_shortcuts_confirm);
builder.setPositiveButton(android.R.string.ok, this);
builder.setNegativeButton(android.R.string.cancel, this);
return builder.create();
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
AlertDialogExtensionsKt.applyTheme((AlertDialog) dialog);
}
});
return dialog;
}
}
}

View File

@ -12,6 +12,7 @@ import android.view.View;
import android.view.Window;
import org.mariotaku.kpreferences.KPreferences;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.util.dagger.GeneralComponentHelper;
import javax.inject.Inject;
@ -51,7 +52,13 @@ public abstract class ThemedPreferenceDialogFragmentCompat extends PreferenceDia
}
onPrepareDialogBuilder(builder);
// Create the dialog
final Dialog dialog = builder.create();
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
AlertDialogExtensionsKt.applyTheme((AlertDialog) dialog);
}
});
if (needInputMethod()) {
supportRequestInputMethod(dialog);
}

View File

@ -38,6 +38,7 @@ import android.view.View;
import android.widget.ImageView;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.preference.iface.IDialogPreference;
import org.mariotaku.twidere.util.TwidereColorUtils;
@ -150,7 +151,8 @@ public class ColorPickerPreference extends DialogPreference implements
@Override
public void onShow(DialogInterface dialog) {
final ColorPickerPreference preference = (ColorPickerPreference) getPreference();
final Dialog alertDialog = (Dialog) dialog;
final AlertDialog alertDialog = (AlertDialog) dialog;
AlertDialogExtensionsKt.applyTheme(alertDialog);
final View windowView = alertDialog.getWindow().getDecorView();
if (windowView == null) return;
mController = new ColorPickerDialog.Controller(getContext(), windowView);

View File

@ -34,6 +34,7 @@ import android.support.v7.preference.PreferenceFragmentCompat;
import android.util.AttributeSet;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.preference.iface.IDialogPreference;
abstract class MultiSelectListPreference extends DialogPreference implements IDialogPreference {
@ -98,7 +99,14 @@ abstract class MultiSelectListPreference extends DialogPreference implements IDi
builder.setPositiveButton(android.R.string.ok, this);
builder.setNegativeButton(android.R.string.cancel, null);
builder.setMultiChoiceItems(mNames, mValues, this);
return builder.create();
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
AlertDialogExtensionsKt.applyTheme((AlertDialog) dialog);
}
});
return dialog;
}
@Override

View File

@ -34,6 +34,7 @@ import android.util.AttributeSet;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.activity.DataExportActivity;
import org.mariotaku.twidere.activity.DataImportActivity;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.preference.iface.IDialogPreference;
/**
@ -83,7 +84,14 @@ public class SettingsImportExportPreference extends DialogPreference implements
startActivity(values[which]);
}
});
return builder.create();
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
AlertDialogExtensionsKt.applyTheme((AlertDialog) dialog);
}
});
return dialog;
}
@Override

View File

@ -23,6 +23,7 @@ import android.widget.SeekBar;
import org.mariotaku.twidere.Constants;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.preference.iface.IDialogPreference;
/**
@ -172,10 +173,11 @@ public class ThemeBackgroundPreference extends DialogPreference implements Const
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
final AlertDialog alertDialog = (AlertDialog) dialog;
AlertDialogExtensionsKt.applyTheme(alertDialog);
if (preferences != null) {
final AlertDialog materialDialog = (AlertDialog) dialog;
final LayoutInflater inflater = materialDialog.getLayoutInflater();
final ListView listView = materialDialog.getListView();
final LayoutInflater inflater = alertDialog.getLayoutInflater();
final ListView listView = alertDialog.getListView();
assert listView != null;
final ViewGroup listViewParent = (ViewGroup) listView.getParent();
listViewParent.removeView(listView);

View File

@ -42,6 +42,7 @@ import org.mariotaku.microblog.library.MicroBlogException;
import org.mariotaku.microblog.library.twitter.model.Language;
import org.mariotaku.microblog.library.twitter.model.ResponseList;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.extension.AlertDialogExtensionsKt;
import org.mariotaku.twidere.util.MicroBlogAPIFactory;
import java.text.Collator;
@ -189,10 +190,17 @@ public class TranslationDestinationPreference extends Preference implements OnCl
TranslationDestinationPreference.this);
selectorBuilder.setNegativeButton(android.R.string.cancel, null);
mDialog = selectorBuilder.create();
final ListView lv = mDialog.getListView();
if (lv != null) {
lv.setFastScrollEnabled(true);
}
mDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(final DialogInterface dialog) {
final AlertDialog alertDialog = (AlertDialog) dialog;
AlertDialogExtensionsKt.applyTheme(alertDialog);
final ListView lv = alertDialog.getListView();
if (lv != null) {
lv.setFastScrollEnabled(true);
}
}
});
mDialog.show();
}

View File

@ -75,6 +75,7 @@ import org.mariotaku.twidere.TwidereConstants
import org.mariotaku.twidere.adapter.ArrayRecyclerAdapter
import org.mariotaku.twidere.adapter.BaseRecyclerViewAdapter
import org.mariotaku.twidere.constant.*
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.model.getAccountUser
import org.mariotaku.twidere.extension.model.unique_id_non_null
import org.mariotaku.twidere.fragment.BaseDialogFragment
@ -1827,9 +1828,10 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
(activity as ComposeActivity).setMediaAltText(arguments.getInt(EXTRA_POSITION), null)
}
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
val materialDialog = dialog as Dialog
val editText = materialDialog.findViewById(R.id.edit_text) as EditText
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
val editText = it.findViewById(R.id.edit_text) as EditText
editText.setText(arguments.getString(EXTRA_TEXT))
}
return dialog
@ -1860,7 +1862,12 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
builder.setMessage(R.string.quote_protected_status_warning_message)
builder.setPositiveButton(R.string.send_anyway, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -77,6 +77,7 @@ import org.mariotaku.twidere.adapter.SupportTabsAdapter
import org.mariotaku.twidere.annotation.CustomTabType
import org.mariotaku.twidere.annotation.ReadPositionTag
import org.mariotaku.twidere.constant.*
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.*
import org.mariotaku.twidere.fragment.iface.RefreshScrollTopInterface
import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback
@ -960,7 +961,12 @@ class HomeActivity : BaseActivity(), OnClickListener, OnPageChangeListener, Supp
builder.setNegativeButton(R.string.no_thanks) { dialog, which ->
kPreferences[defaultAutoRefreshKey] = false
}
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
override fun onDismiss(dialog: DialogInterface?) {

View File

@ -9,6 +9,7 @@ import android.support.v4.app.FragmentActivity
import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_INTENT
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.model.isAccountValid
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.model.util.AccountUtils
@ -44,7 +45,12 @@ class InvalidAccountAlertActivity : FragmentActivity() {
builder.setNegativeButton(android.R.string.cancel) { dialog, which ->
}
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
override fun onDismiss(dialog: DialogInterface?) {

View File

@ -44,6 +44,7 @@ import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.constant.KeyboardShortcutConstants.ACTION_NAVIGATION_BACK
import org.mariotaku.twidere.constant.KeyboardShortcutConstants.CONTEXT_TAG_NAVIGATION
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.*
import org.mariotaku.twidere.util.KeyboardShortcutsHandler
import org.mariotaku.twidere.util.ThemeUtils
@ -366,7 +367,12 @@ class SettingsActivity : BaseActivity(), OnItemClickListener, OnPreferenceStartF
builder.setMessage(R.string.app_restart_confirm)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(R.string.dont_restart, this)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
override fun onClick(dialog: DialogInterface, which: Int) {

View File

@ -74,6 +74,7 @@ import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_CREDENTIALS_
import org.mariotaku.twidere.constant.chromeCustomTabKey
import org.mariotaku.twidere.constant.defaultAPIConfigKey
import org.mariotaku.twidere.constant.randomizeAccountNameKey
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.model.getColor
import org.mariotaku.twidere.extension.model.newMicroBlogInstance
import org.mariotaku.twidere.extension.model.official
@ -675,9 +676,9 @@ class SignInActivity : BaseActivity(), OnClickListener, TextWatcher, APIEditorDi
}
override fun onShow(dialog: DialogInterface) {
val alertDialog = dialog as AlertDialog
val verificationHint = alertDialog.findViewById(R.id.verification_hint) as TextView?
val editVerification = alertDialog.findViewById(R.id.edit_verification_code) as EditText?
(dialog as AlertDialog).applyTheme()
val verificationHint = dialog.findViewById(R.id.verification_hint) as TextView?
val editVerification = dialog.findViewById(R.id.edit_verification_code) as EditText?
if (verificationHint == null || editVerification == null) return
when {
"Push".equals(challengeType, ignoreCase = true) -> {
@ -725,10 +726,11 @@ class SignInActivity : BaseActivity(), OnClickListener, TextWatcher, APIEditorDi
builder.setNegativeButton(android.R.string.cancel, null)
val alertDialog = builder.create()
alertDialog.setOnShowListener { dialog ->
val materialDialog = dialog as AlertDialog
val editUsername = materialDialog.findViewById(R.id.username) as EditText?
val editPassword = materialDialog.findViewById(R.id.password) as EditText?
alertDialog.setOnShowListener {
(it as AlertDialog)
it.applyTheme()
val editUsername = it.findViewById(R.id.username) as EditText?
val editPassword = it.findViewById(R.id.password) as EditText?
assert(editUsername != null && editPassword != null)
val textWatcher = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
@ -736,7 +738,7 @@ class SignInActivity : BaseActivity(), OnClickListener, TextWatcher, APIEditorDi
}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
val button = materialDialog.getButton(DialogInterface.BUTTON_POSITIVE) ?: return
val button = it.getButton(DialogInterface.BUTTON_POSITIVE) ?: return
button.isEnabled = editUsername!!.length() > 0 && editPassword!!.length() > 0
}

View File

@ -27,6 +27,7 @@ import org.mariotaku.microblog.library.MicroBlogException
import org.mariotaku.microblog.library.twitter.model.Location
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.fragment.ProgressDialogFragment
import org.mariotaku.twidere.model.UserKey
@ -91,9 +92,10 @@ class TrendsLocationSelectorActivity : BaseActivity() {
selectorBuilder.setView(R.layout.dialog_trends_location_selector)
selectorBuilder.setNegativeButton(android.R.string.cancel, null)
val dialog = selectorBuilder.create()
dialog.setOnShowListener { dialogInterface ->
dialogInterface as Dialog
val listView = dialogInterface.findViewById(R.id.expandable_list) as ExpandableListView
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
val listView = it.findViewById(R.id.expandable_list) as ExpandableListView
val adapter = ExpandableTrendLocationsListAdapter(context)
adapter.data = list
listView.setAdapter(adapter)

View File

@ -29,7 +29,7 @@ interface IExtendedActivity<out A : FragmentActivity> {
fun executeAfterFragmentResumed(action: (A) -> Unit)
class ActionHelper<out A: FragmentActivity>(private val activity: A) {
class ActionHelper<out A : FragmentActivity>(private val activity: A) {
private var fragmentResumed: Boolean = false
private val actionQueue = LinkedList<(A) -> Unit>()

View File

@ -0,0 +1,18 @@
package org.mariotaku.twidere.extension
import android.content.DialogInterface.*
import android.support.v7.app.AlertDialog
import org.mariotaku.chameleon.Chameleon
import org.mariotaku.chameleon.ChameleonUtils
/**
* Created by mariotaku on 2017/2/5.
*/
fun AlertDialog.applyTheme(): AlertDialog {
val theme = Chameleon.getOverrideTheme(context, ChameleonUtils.getActivity(context))
getButton(BUTTON_POSITIVE)?.setTextColor(theme.colorAccent)
getButton(BUTTON_NEGATIVE)?.setTextColor(theme.colorAccent)
getButton(BUTTON_NEUTRAL)?.setTextColor(theme.colorAccent)
return this
}

View File

@ -22,6 +22,7 @@ import org.mariotaku.twidere.adapter.BaseArrayAdapter
import org.mariotaku.twidere.annotation.AccountType
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_API_CONFIG
import org.mariotaku.twidere.constant.defaultAPIConfigKey
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.setSelectedItem
import org.mariotaku.twidere.model.CustomAPIConfig
import org.mariotaku.twidere.model.account.cred.Credentials
@ -66,8 +67,9 @@ class APIEditorDialogFragment : BaseDialogFragment() {
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
if (arguments?.getBoolean(EXTRA_SHOW_LOAD_DEFAULTS) ?: false) {
loadDefaults.visibility = View.VISIBLE
} else {
@ -154,7 +156,12 @@ class APIEditorDialogFragment : BaseDialogFragment() {
val builder = AlertDialog.Builder(context)
builder.setAdapter(adapter, this)
loaderManager.initLoader(0, null, this)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
override fun onClick(dialog: DialogInterface, which: Int) {

View File

@ -27,6 +27,7 @@ import android.widget.CheckBox
import android.widget.TextView
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableUser
abstract class AbsUserMuteBlockDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
@ -52,8 +53,10 @@ abstract class AbsUserMuteBlockDialogFragment : BaseDialogFragment(), DialogInte
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener {
val confirmMessageView = dialog.findViewById(R.id.confirmMessage) as TextView
val filterEverywhereHelp = dialog.findViewById(R.id.filterEverywhereHelp)!!
it as AlertDialog
it.applyTheme()
val confirmMessageView = it.findViewById(R.id.confirmMessage) as TextView
val filterEverywhereHelp = it.findViewById(R.id.filterEverywhereHelp)!!
filterEverywhereHelp.setOnClickListener {
MessageDialogFragment.show(childFragmentManager, title = getString(R.string.filter_everywhere),
message = getString(R.string.filter_everywhere_description), tag = "filter_everywhere_help")

View File

@ -3,7 +3,6 @@ package org.mariotaku.twidere.fragment
import android.accounts.Account
import android.accounts.AccountManager
import android.app.Activity
import android.app.AlertDialog
import android.app.Dialog
import android.content.ContentResolver
import android.content.ContentValues
@ -13,6 +12,7 @@ import android.graphics.Color
import android.os.Bundle
import android.support.v4.app.LoaderManager
import android.support.v4.content.Loader
import android.support.v7.app.AlertDialog
import android.view.*
import android.view.ContextMenu.ContextMenuInfo
import android.widget.AdapterView
@ -31,6 +31,7 @@ import org.mariotaku.twidere.adapter.AccountDetailsAdapter
import org.mariotaku.twidere.annotation.Referral
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_ACCOUNT_KEY
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_NEW_DOCUMENT_API
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.model.getAccountKey
import org.mariotaku.twidere.extension.model.setActivated
import org.mariotaku.twidere.extension.model.setColor
@ -232,7 +233,12 @@ class AccountsManagerFragment : BaseFragment(), LoaderManager.LoaderCallbacks<Li
builder.setPositiveButton(android.R.string.ok, this)
builder.setTitle(R.string.account_delete_confirm_title)
builder.setMessage(R.string.account_delete_confirm_message)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -28,6 +28,7 @@ import com.twitter.Extractor
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_STATUS
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_NAME_FIRST
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableStatus
import org.mariotaku.twidere.model.ParcelableUserMention
import org.mariotaku.twidere.model.UserKey
@ -113,7 +114,12 @@ class AddStatusFilterDialogFragment : BaseDialogFragment() {
ContentResolverUtils.bulkInsert(resolver, Filters.Sources.CONTENT_URI, sourceValues)
}
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val filterItemsInfo: Array<FilterItemInfo>

View File

@ -28,6 +28,7 @@ import android.support.v7.app.AlertDialog
import me.uucky.colorpicker.ColorPickerDialog
import org.mariotaku.twidere.Constants.*
import org.mariotaku.twidere.R
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.iface.IDialogFragmentCallback
class ColorPickerDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
@ -75,7 +76,8 @@ class ColorPickerDialogFragment : BaseDialogFragment(), DialogInterface.OnClickL
builder.setNegativeButton(android.R.string.cancel, this)
val dialog = builder.create()
dialog.setOnShowListener {
it as Dialog
it as AlertDialog
it.applyTheme()
mController = ColorPickerDialog.Controller(it.context, it.window.decorView)
val showAlphaSlider = args.getBoolean(EXTRA_ALPHA_SLIDER, true)

View File

@ -28,6 +28,7 @@ import android.widget.CheckBox
import com.rengwuxian.materialedittext.MaterialEditText
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_ACCOUNT_KEY
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.UserKey
import org.mariotaku.twidere.text.validator.UserListNameValidator
import org.mariotaku.twidere.util.ParseUtils
@ -60,9 +61,10 @@ class CreateUserListDialogFragment : BaseDialogFragment(), DialogInterface.OnCli
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, this)
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
val alertDialog = dialog as AlertDialog
val editName = alertDialog.findViewById(R.id.name) as MaterialEditText
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
val editName = it.findViewById(R.id.name) as MaterialEditText
editName.addValidator(UserListNameValidator(getString(R.string.invalid_list_name)))
}
return dialog

View File

@ -41,7 +41,7 @@ class CreateUserMuteDialogFragment : AbsUserMuteBlockDialogFragment() {
override fun getPositiveButtonTitle(user: ParcelableUser): String {
return getString(R.string.action_mute)
}
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
twitterWrapper.createMuteAsync(user.account_key, user.key, filterEverywhere)
}

View File

@ -54,6 +54,7 @@ import org.mariotaku.twidere.activity.SettingsActivity
import org.mariotaku.twidere.adapter.AccountsSpinnerAdapter
import org.mariotaku.twidere.adapter.ArrayAdapter
import org.mariotaku.twidere.annotation.CustomTabType
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.model.isOfficial
import org.mariotaku.twidere.model.AccountDetails
import org.mariotaku.twidere.model.Tab
@ -231,6 +232,7 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, MultiChoice
override fun onShow(dialog: DialogInterface) {
dialog as AlertDialog
dialog.applyTheme()
@CustomTabType
val tabType: String
val tab: Tab

View File

@ -29,6 +29,7 @@ import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USERS
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER_LIST
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_NAME_FIRST
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableUser
import org.mariotaku.twidere.model.ParcelableUserList
@ -66,7 +67,12 @@ class DeleteUserListMembersDialogFragment : BaseDialogFragment(), DialogInterfac
}
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val userList: ParcelableUserList?

View File

@ -27,6 +27,7 @@ import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_NAME_FIRST
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableUser
class DestroyFriendshipDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
@ -50,7 +51,12 @@ class DestroyFriendshipDialogFragment : BaseDialogFragment(), DialogInterface.On
builder.setMessage(getString(R.string.unfollow_user_confirm_message, displayName))
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val user: ParcelableUser?

View File

@ -0,0 +1,88 @@
/*
* Twidere - Twitter client for Android
*
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
*
* 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.mariotaku.twidere.fragment
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.support.v4.app.FragmentManager
import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.UserKey
class DestroySavedSearchDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
when (which) {
DialogInterface.BUTTON_POSITIVE -> {
val accountKey = accountKey
val searchId = searchId
val twitter = twitterWrapper
if (searchId <= 0) return
twitter.destroySavedSearchAsync(accountKey, searchId)
}
else -> {
}
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val context = activity
val builder = AlertDialog.Builder(context)
val name = searchName
builder.setTitle(getString(R.string.destroy_saved_search, name))
builder.setMessage(getString(R.string.destroy_saved_search_confirm_message, name))
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val accountKey: UserKey
get() = arguments.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
private val searchId: Long
get() = arguments.getLong(EXTRA_SEARCH_ID, -1)
private val searchName: String
get() = arguments.getString(EXTRA_NAME)
companion object {
private const val FRAGMENT_TAG = "destroy_saved_search"
fun show(fm: FragmentManager, accountKey: UserKey, searchId: Long, name: String): DestroySavedSearchDialogFragment {
val args = Bundle()
args.putParcelable(EXTRA_ACCOUNT_KEY, accountKey)
args.putLong(EXTRA_SEARCH_ID, searchId)
args.putString(EXTRA_NAME, name)
val f = DestroySavedSearchDialogFragment()
f.arguments = args
f.show(fm, FRAGMENT_TAG)
return f
}
}
}

View File

@ -26,6 +26,7 @@ import android.support.v4.app.FragmentManager
import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_STATUS
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableStatus
class DestroyStatusDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
@ -48,7 +49,12 @@ class DestroyStatusDialogFragment : BaseDialogFragment(), DialogInterface.OnClic
builder.setMessage(R.string.destroy_status_confirm_message)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val status: ParcelableStatus?

View File

@ -0,0 +1,78 @@
/*
* Twidere - Twitter client for Android
*
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
*
* 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.mariotaku.twidere.fragment
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.support.v4.app.FragmentManager
import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER_LIST
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableUserList
class DestroyUserListDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
when (which) {
DialogInterface.BUTTON_POSITIVE -> {
val userList = userList
val twitter = twitterWrapper
twitter.destroyUserListAsync(userList.account_key, userList.id)
}
else -> {
}
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val context = activity
val builder = AlertDialog.Builder(context)
val userList = userList
builder.setTitle(getString(R.string.delete_user_list, userList.name))
builder.setMessage(getString(R.string.delete_user_list_confirm_message, userList.name))
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val userList: ParcelableUserList
get() = arguments.getParcelable<ParcelableUserList>(EXTRA_USER_LIST)
companion object {
private const val FRAGMENT_TAG = "destroy_user_list"
fun show(fm: FragmentManager, userList: ParcelableUserList): DestroyUserListDialogFragment {
val args = Bundle()
args.putParcelable(EXTRA_USER_LIST, userList)
val f = DestroyUserListDialogFragment()
f.arguments = args
f.show(fm, FRAGMENT_TAG)
return f
}
}
}

View File

@ -26,6 +26,7 @@ import android.support.v4.app.FragmentManager
import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER_LIST
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableUserList
class DestroyUserListSubscriptionDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
@ -53,7 +54,12 @@ class DestroyUserListSubscriptionDialogFragment : BaseDialogFragment(), DialogIn
}
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val userList: ParcelableUserList?

View File

@ -19,7 +19,6 @@
package org.mariotaku.twidere.fragment
import android.app.AlertDialog
import android.app.Dialog
import android.app.NotificationManager
import android.content.Context
@ -35,6 +34,7 @@ import android.support.v4.app.FragmentActivity
import android.support.v4.app.LoaderManager.LoaderCallbacks
import android.support.v4.content.CursorLoader
import android.support.v4.content.Loader
import android.support.v7.app.AlertDialog
import android.text.TextUtils
import android.view.*
import android.widget.AbsListView.MultiChoiceModeListener
@ -52,10 +52,7 @@ import org.mariotaku.twidere.activity.iface.IExtendedActivity
import org.mariotaku.twidere.adapter.DraftsAdapter
import org.mariotaku.twidere.constant.IntentConstants
import org.mariotaku.twidere.constant.textSizeKey
import org.mariotaku.twidere.extension.invertSelection
import org.mariotaku.twidere.extension.selectAll
import org.mariotaku.twidere.extension.selectNone
import org.mariotaku.twidere.extension.updateSelectionItems
import org.mariotaku.twidere.extension.*
import org.mariotaku.twidere.model.Draft
import org.mariotaku.twidere.model.draft.SendDirectMessageActionExtras
import org.mariotaku.twidere.model.util.ParcelableStatusUpdateUtils
@ -257,7 +254,12 @@ class DraftsFragment : BaseFragment(), LoaderCallbacks<Cursor?>, OnItemClickList
builder.setMessage(R.string.delete_drafts_confirm)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -14,6 +14,7 @@ import org.mariotaku.ktextension.Bundle
import org.mariotaku.ktextension.set
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_REQUEST_CODE
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.analyzer.PurchaseConfirm
import org.mariotaku.twidere.model.analyzer.PurchaseFinished
import org.mariotaku.twidere.model.analyzer.PurchaseIntroduction
@ -49,8 +50,9 @@ class ExtraFeaturesIntroductionDialogFragment : BaseDialogFragment() {
}
val dialog = builder.create()
dialog.setOnShowListener {
it as Dialog
it.findViewById(R.id.restorePurchaseHint).visibility = if (restorePurchaseIntent != null) {
it as AlertDialog
it.applyTheme()
it.findViewById(R.id.restorePurchaseHint)?.visibility = if (restorePurchaseIntent != null) {
View.VISIBLE
} else {
View.GONE
@ -60,7 +62,7 @@ class ExtraFeaturesIntroductionDialogFragment : BaseDialogFragment() {
val featureDescription = it.findViewById(R.id.featureDescription) as TextView
featureIcon.setImageResource(description.icon)
featureDescription.text = description.description
it.findViewById(R.id.buyFeaturesPack).setOnClickListener {
it.findViewById(R.id.buyFeaturesPack)?.setOnClickListener {
startPurchase(ExtraFeaturesService.FEATURE_FEATURES_PACK)
dismiss()
}

View File

@ -29,7 +29,7 @@ import org.mariotaku.twidere.model.UserKey
class GroupMembersFragment : CursorUsersListFragment() {
override fun onCreateUsersLoader(context: Context,
args: Bundle, fromUser: Boolean): CursorSupportUsersLoader {
args: Bundle, fromUser: Boolean): CursorSupportUsersLoader {
val accountId = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val groupId = args.getString(EXTRA_GROUP_ID)
val groupName = args.getString(EXTRA_GROUP_NAME)

View File

@ -40,6 +40,7 @@ import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.HOST_MAPPING_PREFERENCES_NAME
import org.mariotaku.twidere.adapter.ArrayAdapter
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.util.ParseUtils
import org.mariotaku.twidere.util.SharedPreferencesWrapper
@ -200,11 +201,12 @@ class HostMappingsListFragment : AbsContentListViewFragment<HostMappingsListFrag
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
val alertDialog = dialog as AlertDialog
mEditHost = alertDialog.findViewById(R.id.host) as EditText?
mEditAddress = alertDialog.findViewById(R.id.address) as EditText?
mCheckExclude = alertDialog.findViewById(R.id.exclude) as CheckBox?
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
mEditHost = it.findViewById(R.id.host) as EditText?
mEditAddress = it.findViewById(R.id.address) as EditText?
mCheckExclude = it.findViewById(R.id.exclude) as CheckBox?
mEditHost!!.addTextChangedListener(this@AddMappingDialogFragment)
mEditAddress!!.addTextChangedListener(this@AddMappingDialogFragment)
mCheckExclude!!.setOnCheckedChangeListener(this@AddMappingDialogFragment)

View File

@ -36,7 +36,7 @@ import org.mariotaku.twidere.view.holder.UserViewHolder
class IncomingFriendshipsFragment : CursorUsersListFragment(), IUsersAdapter.RequestClickListener {
override fun onCreateUsersLoader(context: Context, args: Bundle,
fromUser: Boolean): CursorSupportUsersLoader {
fromUser: Boolean): CursorSupportUsersLoader {
val accountKey = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val loader = IncomingFriendshipsLoader(context, accountKey, adapter.getData(), fromUser)
loader.cursor = nextCursor

View File

@ -19,14 +19,15 @@
package org.mariotaku.twidere.fragment
import android.app.AlertDialog
import android.app.Dialog
import android.os.Bundle
import android.support.v4.app.FragmentManager
import android.support.v7.app.AlertDialog
import org.mariotaku.ktextension.Bundle
import org.mariotaku.ktextension.set
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_MESSAGE
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_TITLE
import org.mariotaku.twidere.extension.applyTheme
/**
* Created by mariotaku on 14-6-24.
@ -40,7 +41,12 @@ class MessageDialogFragment : BaseDialogFragment() {
builder.setTitle(args.getString(EXTRA_TITLE))
builder.setMessage(args.getString(EXTRA_MESSAGE))
builder.setPositiveButton(android.R.string.ok, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
companion object {

View File

@ -21,7 +21,6 @@ package org.mariotaku.twidere.fragment
import android.accounts.AccountManager
import android.app.Activity
import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
@ -36,6 +35,7 @@ import android.support.v4.content.CursorLoader
import android.support.v4.content.Loader
import android.support.v4.view.ViewCompat
import android.support.v7.app.ActionBar
import android.support.v7.app.AlertDialog
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.FixedLinearLayoutManager
import android.support.v7.widget.LinearLayoutManager
@ -67,6 +67,7 @@ import org.mariotaku.twidere.annotation.CustomTabType
import org.mariotaku.twidere.constant.KeyboardShortcutConstants.ACTION_NAVIGATION_BACK
import org.mariotaku.twidere.constant.KeyboardShortcutConstants.CONTEXT_TAG_NAVIGATION
import org.mariotaku.twidere.constant.SharedPreferenceConstants
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.loader.CacheUserSearchLoader
import org.mariotaku.twidere.model.AccountDetails
import org.mariotaku.twidere.model.ParcelableDirectMessage
@ -713,7 +714,12 @@ class MessagesConversationFragment : BaseFragment(), LoaderCallbacks<Cursor?>, O
builder.setMessage(R.string.delete_conversation_confirm_message)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
@ -738,7 +744,12 @@ class MessagesConversationFragment : BaseFragment(), LoaderCallbacks<Cursor?>, O
builder.setMessage(R.string.delete_message_confirm_message)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}

View File

@ -9,6 +9,7 @@ import org.mariotaku.ktextension.Bundle
import org.mariotaku.ktextension.set
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.extension.applyTheme
/**
* Created by mariotaku on 2016/12/13.
@ -27,7 +28,12 @@ class PermissionRequestDialog : BaseDialogFragment() {
PermissionRequestCancelCallback ?: return@setNegativeButton
callback.onPermissionRequestCancelled(requestCode)
}
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
interface PermissionRequestCancelCallback {

View File

@ -28,6 +28,7 @@ import android.os.Bundle
import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_URI
import org.mariotaku.twidere.extension.applyTheme
class PhishingLinkWarningDialogFragment : BaseDialogFragment(), OnClickListener {
@ -50,7 +51,12 @@ class PhishingLinkWarningDialogFragment : BaseDialogFragment(), OnClickListener
builder.setView(R.layout.dialog_phishing_link_warning)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -27,6 +27,7 @@ import android.support.v7.app.AlertDialog
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_NAME_FIRST
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableUser
class ReportSpamDialogFragment : BaseDialogFragment(), DialogInterface.OnClickListener {
@ -53,7 +54,12 @@ class ReportSpamDialogFragment : BaseDialogFragment(), DialogInterface.OnClickLi
}
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
private val user: ParcelableUser?

View File

@ -41,6 +41,7 @@ import org.mariotaku.twidere.adapter.DummyItemAdapter
import org.mariotaku.twidere.annotation.AccountType
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_QUICK_SEND
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.AccountDetails
import org.mariotaku.twidere.model.Draft
import org.mariotaku.twidere.model.ParcelableStatus
@ -80,15 +81,15 @@ class RetweetQuoteDialogFragment : BaseDialogFragment() {
val dialog = builder.create()
dialog.setOnShowListener {
val alertDialog = it as AlertDialog
val itemContent = alertDialog.findViewById(R.id.itemContent)!!
val textCountView = alertDialog.findViewById(R.id.comment_text_count) as StatusTextCountView
val itemMenu = alertDialog.findViewById(R.id.itemMenu)!!
val actionButtons = alertDialog.findViewById(R.id.actionButtons)!!
val commentContainer = alertDialog.findViewById(R.id.comment_container)!!
val editComment = alertDialog.findViewById(R.id.edit_comment) as ComposeEditText
val commentMenu = alertDialog.findViewById(R.id.comment_menu)!!
it as AlertDialog
it.applyTheme()
val itemContent = it.findViewById(R.id.itemContent)!!
val textCountView = it.findViewById(R.id.comment_text_count) as StatusTextCountView
val itemMenu = it.findViewById(R.id.itemMenu)!!
val actionButtons = it.findViewById(R.id.actionButtons)!!
val commentContainer = it.findViewById(R.id.comment_container)!!
val editComment = it.findViewById(R.id.edit_comment) as ComposeEditText
val commentMenu = it.findViewById(R.id.comment_menu)!!
val adapter = DummyItemAdapter(context)
adapter.setShouldShowAccountsColor(true)
@ -149,7 +150,7 @@ class RetweetQuoteDialogFragment : BaseDialogFragment() {
false
})
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener {
it.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener {
var dismissDialog = false
if (editComment.length() > 0) {
dismissDialog = retweetOrQuote(details, status, SHOW_PROTECTED_CONFIRM)
@ -166,7 +167,7 @@ class RetweetQuoteDialogFragment : BaseDialogFragment() {
}
}
updateTextCount(alertDialog, editComment.text, status, details)
updateTextCount(it, editComment.text, status, details)
}
return dialog
}
@ -284,7 +285,12 @@ class RetweetQuoteDialogFragment : BaseDialogFragment() {
builder.setMessage(R.string.quote_protected_status_warning_message)
builder.setPositiveButton(R.string.send_anyway, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
companion object {

View File

@ -26,6 +26,7 @@ import android.support.v7.app.AlertDialog
import org.mariotaku.ktextension.toTypedArray
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.ParcelableMedia
import org.mariotaku.twidere.model.ParcelableStatus
import org.mariotaku.twidere.model.UserKey
@ -59,7 +60,12 @@ class SensitiveContentWarningDialogFragment : BaseDialogFragment(), DialogInterf
builder.setMessage(R.string.sensitive_content_warning)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -31,6 +31,7 @@ import org.mariotaku.ktextension.empty
import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_NAME
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_USER_KEY
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.model.UserKey
class SetUserNicknameDialogFragment : BaseDialogFragment(), OnClickListener {
@ -66,7 +67,12 @@ class SetUserNicknameDialogFragment : BaseDialogFragment(), OnClickListener {
}
builder.setNegativeButton(android.R.string.cancel, null)
builder.setView(R.layout.dialog_edit_user_nickname)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
companion object {

View File

@ -90,6 +90,7 @@ import org.mariotaku.twidere.annotation.AccountType
import org.mariotaku.twidere.annotation.Referral
import org.mariotaku.twidere.constant.*
import org.mariotaku.twidere.constant.KeyboardShortcutConstants.*
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.model.getAccountType
import org.mariotaku.twidere.extension.model.media_type
import org.mariotaku.twidere.loader.ConversationLoader
@ -725,7 +726,12 @@ class StatusFragment : BaseFragment(), LoaderCallbacks<SingleResponse<Parcelable
builder.setMessage(R.string.sensitive_content_warning)
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -30,8 +30,8 @@ import org.mariotaku.twidere.model.UserKey
class StatusRetweetersListFragment : CursorUsersListFragment() {
override fun onCreateUsersLoader(context: Context,
args: Bundle,
fromUser: Boolean): CursorSupportUsersLoader {
args: Bundle,
fromUser: Boolean): CursorSupportUsersLoader {
val accountKey = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val statusId = args.getString(EXTRA_STATUS_ID)
val loader = StatusRetweetersLoader(context, accountKey, statusId,

View File

@ -30,8 +30,8 @@ import org.mariotaku.twidere.model.message.FriendshipTaskEvent
class UserFollowersFragment : CursorUsersListFragment() {
override fun onCreateUsersLoader(context: Context,
args: Bundle,
fromUser: Boolean): CursorSupportUsersLoader {
args: Bundle,
fromUser: Boolean): CursorSupportUsersLoader {
val accountKey = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val userKey = args.getParcelable<UserKey>(EXTRA_USER_KEY)
val screenName = args.getString(EXTRA_SCREEN_NAME)

View File

@ -103,6 +103,7 @@ import org.mariotaku.twidere.constant.displaySensitiveContentsKey
import org.mariotaku.twidere.constant.lightFontKey
import org.mariotaku.twidere.constant.newDocumentApiKey
import org.mariotaku.twidere.constant.profileImageStyleKey
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.AbsStatusesFragment.StatusesFragmentDelegate
import org.mariotaku.twidere.fragment.UserTimelineFragment.UserTimelineFragmentDelegate
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback
@ -1630,7 +1631,9 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
builder.setMultiChoiceItems(entries, states, null)
val dialog = builder.create()
dialog.setOnShowListener {
dialog.setOnShowListener { dialog ->
dialog as AlertDialog
dialog.applyTheme()
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener {
val checkedPositions = dialog.listView.checkedItemPositions
val weakActivity = WeakReference(activity)

View File

@ -30,7 +30,7 @@ import org.mariotaku.twidere.model.message.FriendshipTaskEvent
class UserFriendsFragment : CursorUsersListFragment() {
override fun onCreateUsersLoader(context: Context,
args: Bundle, fromUser: Boolean): CursorSupportUsersLoader {
args: Bundle, fromUser: Boolean): CursorSupportUsersLoader {
val accountKey = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val userKey = args.getParcelable<UserKey>(EXTRA_USER_KEY)
val screenName = args.getString(EXTRA_SCREEN_NAME)

View File

@ -51,6 +51,7 @@ import org.mariotaku.twidere.R
import org.mariotaku.twidere.activity.AccountSelectorActivity
import org.mariotaku.twidere.activity.UserSelectorActivity
import org.mariotaku.twidere.adapter.SupportTabsAdapter
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback
import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback
import org.mariotaku.twidere.model.ParcelableUser
@ -370,10 +371,11 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, LoaderCa
builder.setNegativeButton(android.R.string.cancel, this)
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
val alertDialog = dialog as AlertDialog
val editName = alertDialog.findViewById(R.id.name) as MaterialEditText?
val editDescription = alertDialog.findViewById(R.id.description) as MaterialEditText?
val editPublic = alertDialog.findViewById(R.id.is_public) as CheckBox?
dialog as AlertDialog
dialog.applyTheme()
val editName = dialog.findViewById(R.id.name) as MaterialEditText?
val editDescription = dialog.findViewById(R.id.description) as MaterialEditText?
val editPublic = dialog.findViewById(R.id.is_public) as CheckBox?
assert(editName != null && editDescription != null && editPublic != null)
editName!!.addValidator(UserListNameValidator(getString(R.string.invalid_list_name)))
if (mName != null) {
@ -452,7 +454,12 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, LoaderCa
builder.setTitle(userList.name)
builder.setMessage(userList.description)
builder.setPositiveButton(android.R.string.ok, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -45,7 +45,7 @@ import java.util.*
class UserListMembersFragment : CursorUsersListFragment() {
override fun onCreateUsersLoader(context: Context,
args: Bundle, fromUser: Boolean): CursorSupportUsersLoader {
args: Bundle, fromUser: Boolean): CursorSupportUsersLoader {
val accountId = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val listId = args.getString(EXTRA_LIST_ID)
val userKey = args.getParcelable<UserKey>(EXTRA_USER_KEY)

View File

@ -30,7 +30,7 @@ import org.mariotaku.twidere.model.UserKey
class UserListMembershipsFragment : ParcelableUserListsFragment() {
override fun onCreateUserListsLoader(context: Context,
args: Bundle, fromUser: Boolean): Loader<List<ParcelableUserList>> {
args: Bundle, fromUser: Boolean): Loader<List<ParcelableUserList>> {
val accountKey = args.getParcelable<UserKey>(EXTRA_ACCOUNT_KEY)
val userKey = args.getParcelable<UserKey>(EXTRA_USER_KEY)
val screenName = args.getString(EXTRA_SCREEN_NAME)

View File

@ -51,10 +51,7 @@ import org.mariotaku.twidere.TwidereConstants.EXTRA_URI
import org.mariotaku.twidere.activity.iface.IControlBarActivity
import org.mariotaku.twidere.adapter.ComposeAutoCompleteAdapter
import org.mariotaku.twidere.adapter.SourceAutoCompleteAdapter
import org.mariotaku.twidere.extension.invertSelection
import org.mariotaku.twidere.extension.selectAll
import org.mariotaku.twidere.extension.selectNone
import org.mariotaku.twidere.extension.updateSelectionItems
import org.mariotaku.twidere.extension.*
import org.mariotaku.twidere.fragment.AbsContentListViewFragment
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.model.FiltersData
@ -289,8 +286,9 @@ abstract class BaseFiltersFragment : AbsContentListViewFragment<SimpleCursorAdap
builder.setPositiveButton(android.R.string.ok, this)
builder.setNegativeButton(android.R.string.cancel, this)
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
val alertDialog = dialog as AlertDialog
dialog.setOnShowListener {
val alertDialog = it as AlertDialog
it.applyTheme()
val editText = (alertDialog.findViewById(R.id.edit_text) as AutoCompleteTextView?)!!
if (savedInstanceState == null) {
editText.setText(arguments.getString(EXTRA_VALUE))

View File

@ -17,7 +17,6 @@ import android.widget.TextView
import android.widget.Toast
import nl.komponents.kovenant.task
import nl.komponents.kovenant.ui.alwaysUi
import org.mariotaku.kpreferences.get
import org.mariotaku.ktextension.*
import org.mariotaku.twidere.R
import org.mariotaku.twidere.activity.BaseActivity
@ -25,8 +24,9 @@ import org.mariotaku.twidere.adapter.LoadMoreSupportAdapter
import org.mariotaku.twidere.adapter.iface.IContentAdapter
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter.IndicatorPosition
import org.mariotaku.twidere.constant.*
import org.mariotaku.twidere.constant.IntentConstants
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_COUNT
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.AbsContentListRecyclerViewFragment
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.fragment.MessageDialogFragment
@ -41,6 +41,7 @@ import org.mariotaku.twidere.util.support.ViewSupport
import org.mariotaku.twidere.view.holder.LoadIndicatorViewHolder
import org.mariotaku.twidere.view.holder.SimpleUserViewHolder
import java.lang.ref.WeakReference
import kotlin.collections.set
/**
* Created by mariotaku on 2016/12/26.
@ -223,6 +224,8 @@ abstract class BaseFiltersImportFragment : AbsContentListRecyclerViewFragment<Ba
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
val confirmMessageView = dialog.findViewById(R.id.confirmMessage) as TextView
val filterEverywhereHelp = dialog.findViewById(R.id.filterEverywhereHelp)!!
filterEverywhereHelp.setOnClickListener {

View File

@ -28,13 +28,10 @@ import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.REQUEST_PURCHASE_EXTRA_FEATURES
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_ACTION
import org.mariotaku.twidere.constant.IntentConstants.INTENT_PACKAGE_PREFIX
import org.mariotaku.twidere.extension.invertSelection
import org.mariotaku.twidere.extension.*
import org.mariotaku.twidere.extension.model.getComponentLabel
import org.mariotaku.twidere.extension.model.instantiateComponent
import org.mariotaku.twidere.extension.model.setupUrl
import org.mariotaku.twidere.extension.selectAll
import org.mariotaku.twidere.extension.selectNone
import org.mariotaku.twidere.extension.updateSelectionItems
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.fragment.BaseFragment
import org.mariotaku.twidere.fragment.ExtraFeaturesIntroductionDialogFragment
@ -303,11 +300,12 @@ class FiltersSubscriptionsFragment : BaseFragment(), LoaderManager.LoaderCallbac
}
builder.setNegativeButton(android.R.string.cancel, null)
val dialog = builder.create()
dialog.setOnShowListener { dialog ->
dialog as AlertDialog
val editName = dialog.findViewById(R.id.name) as MaterialEditText
val editUrl = dialog.findViewById(R.id.url) as MaterialEditText
val positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE)
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
val editName = it.findViewById(R.id.name) as MaterialEditText
val editUrl = it.findViewById(R.id.url) as MaterialEditText
val positiveButton = it.getButton(DialogInterface.BUTTON_POSITIVE)
fun updateEnableState() {
val nameValid = !editName.empty

View File

@ -10,6 +10,7 @@ import com.squareup.otto.Subscribe
import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.SYNC_PREFERENCES_NAME
import org.mariotaku.twidere.constant.dataSyncProviderInfoKey
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.fragment.BasePreferenceFragment
import org.mariotaku.twidere.model.sync.SyncProviderInfo
@ -89,7 +90,12 @@ class SyncSettingsFragment : BasePreferenceFragment() {
(parentFragment as SyncSettingsFragment).cleanupAndDisconnect()
}
builder.setNegativeButton(android.R.string.cancel, null)
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}

View File

@ -53,8 +53,8 @@ open class TweetSearchLoader(
@Throws(MicroBlogException::class)
override fun getStatuses(microBlog: MicroBlog,
details: AccountDetails,
paging: Paging): List<Status> {
details: AccountDetails,
paging: Paging): List<Status> {
if (query == null) throw MicroBlogException("Empty query")
val queryText = processQuery(details, query)
when (details.type) {

View File

@ -79,6 +79,7 @@ class UrlFiltersSubscriptionProvider(context: Context, val arguments: Arguments)
etagCache[arguments.url] = null
return true
}
override fun deleteLocalData(): Boolean {
etagCache[arguments.url] = null
return true

View File

@ -14,6 +14,7 @@ import org.mariotaku.twidere.activity.FragmentContentActivity
import org.mariotaku.twidere.activity.PremiumDashboardActivity
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_POSITION
import org.mariotaku.twidere.constant.dataSyncProviderInfoKey
import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.fragment.BaseDialogFragment
import org.mariotaku.twidere.fragment.ExtraFeaturesIntroductionDialogFragment
import org.mariotaku.twidere.fragment.sync.SyncSettingsFragment
@ -96,7 +97,12 @@ class SyncStatusViewController : PremiumDashboardActivity.ExtraFeatureViewContro
activity.startActivityForControllerResult(providers[which].authIntent,
arguments.getInt(EXTRA_POSITION), REQUEST_CONNECT_NETWORK_STORAGE)
}
return builder.create()
val dialog = builder.create()
dialog.setOnShowListener {
it as AlertDialog
it.applyTheme()
}
return dialog
}
}