Add features for filtering reports
This commit is contained in:
parent
475f080dd7
commit
8b7c5a49e8
|
@ -18,11 +18,15 @@ import android.annotation.SuppressLint;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
|
import androidx.appcompat.widget.PopupMenu;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
|
@ -43,6 +47,9 @@ import app.fedilab.android.helper.Helper;
|
||||||
public class AdminActivity extends BaseActivity {
|
public class AdminActivity extends BaseActivity {
|
||||||
|
|
||||||
|
|
||||||
|
private boolean unresolved;
|
||||||
|
private boolean local, remote, active, pending, disabled, silenced, suspended;
|
||||||
|
private DisplayAdminReportsFragment displayAdminReportsFragment;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -71,7 +78,7 @@ public class AdminActivity extends BaseActivity {
|
||||||
toolbar_title.setText(String.format(getString(R.string.administration)+ " %s", Helper.getLiveInstance(getApplicationContext())));
|
toolbar_title.setText(String.format(getString(R.string.administration)+ " %s", Helper.getLiveInstance(getApplicationContext())));
|
||||||
}
|
}
|
||||||
setContentView(R.layout.activity_admin);
|
setContentView(R.layout.activity_admin);
|
||||||
|
unresolved = true;
|
||||||
|
|
||||||
ViewPager admin_viewpager = findViewById(R.id.admin_viewpager);
|
ViewPager admin_viewpager = findViewById(R.id.admin_viewpager);
|
||||||
|
|
||||||
|
@ -80,6 +87,60 @@ public class AdminActivity extends BaseActivity {
|
||||||
admin_tablayout.addTab(admin_tablayout.newTab().setText(getString(R.string.accounts)));
|
admin_tablayout.addTab(admin_tablayout.newTab().setText(getString(R.string.accounts)));
|
||||||
|
|
||||||
|
|
||||||
|
final LinearLayout tabStrip = (LinearLayout) admin_tablayout.getChildAt(0);
|
||||||
|
tabStrip.getChildAt(0).setOnLongClickListener(new View.OnLongClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onLongClick(View v) {
|
||||||
|
PopupMenu popup = new PopupMenu(AdminActivity.this, tabStrip.getChildAt(0));
|
||||||
|
popup.getMenuInflater()
|
||||||
|
.inflate(R.menu.option_filter_admin_reports, popup.getMenu());
|
||||||
|
Menu menu = popup.getMenu();
|
||||||
|
final MenuItem itemUnresolved = menu.findItem(R.id.action_unresolved_reports);
|
||||||
|
|
||||||
|
|
||||||
|
itemUnresolved.setChecked(unresolved);
|
||||||
|
|
||||||
|
popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
|
||||||
|
@Override
|
||||||
|
public void onDismiss(PopupMenu menu) {
|
||||||
|
if( displayAdminReportsFragment != null)
|
||||||
|
displayAdminReportsFragment.refreshFilter();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||||
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
|
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
|
||||||
|
item.setActionView(new View(getApplicationContext()));
|
||||||
|
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onMenuItemActionExpand(MenuItem item) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMenuItemActionCollapse(MenuItem item) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (item.getItemId() == R.id.action_unresolved_reports) {
|
||||||
|
unresolved = !unresolved;
|
||||||
|
}
|
||||||
|
if( admin_tablayout.getTabAt(0) != null)
|
||||||
|
//noinspection ConstantConditions
|
||||||
|
admin_tablayout.getTabAt(0).select();
|
||||||
|
PagerAdapter mPagerAdapter = new AdminPagerAdapter(getSupportFragmentManager());
|
||||||
|
admin_viewpager.setAdapter(mPagerAdapter);
|
||||||
|
itemUnresolved.setChecked(unresolved);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
popup.show();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PagerAdapter mPagerAdapter = new AdminPagerAdapter(getSupportFragmentManager());
|
PagerAdapter mPagerAdapter = new AdminPagerAdapter(getSupportFragmentManager());
|
||||||
admin_viewpager.setAdapter(mPagerAdapter);
|
admin_viewpager.setAdapter(mPagerAdapter);
|
||||||
|
|
||||||
|
@ -121,7 +182,7 @@ public class AdminActivity extends BaseActivity {
|
||||||
switch (tab.getPosition()){
|
switch (tab.getPosition()){
|
||||||
case 0:
|
case 0:
|
||||||
if( fragment != null) {
|
if( fragment != null) {
|
||||||
DisplayAdminReportsFragment displayAdminReportsFragment = ((DisplayAdminReportsFragment) fragment);
|
displayAdminReportsFragment = ((DisplayAdminReportsFragment) fragment);
|
||||||
displayAdminReportsFragment.scrollToTop();
|
displayAdminReportsFragment.scrollToTop();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -151,6 +212,9 @@ public class AdminActivity extends BaseActivity {
|
||||||
switch (position){
|
switch (position){
|
||||||
case 0:
|
case 0:
|
||||||
DisplayAdminReportsFragment displayAdminReportsFragment = new DisplayAdminReportsFragment();
|
DisplayAdminReportsFragment displayAdminReportsFragment = new DisplayAdminReportsFragment();
|
||||||
|
bundle = new Bundle();
|
||||||
|
bundle.putBoolean("unresolved",unresolved);
|
||||||
|
displayAdminReportsFragment.setArguments(bundle);
|
||||||
return displayAdminReportsFragment;
|
return displayAdminReportsFragment;
|
||||||
case 1:
|
case 1:
|
||||||
DisplayAdminAccountsFragment displayAdminAccountsFragment = new DisplayAdminAccountsFragment();
|
DisplayAdminAccountsFragment displayAdminAccountsFragment = new DisplayAdminAccountsFragment();
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class PostAdminActionAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
case GET_ONE_ACCOUNT:
|
case GET_ONE_ACCOUNT:
|
||||||
case GET_REPORTS:
|
case GET_REPORTS:
|
||||||
case GET_ONE_REPORT:
|
case GET_ONE_REPORT:
|
||||||
apiResponse = new API(contextReference.get()).adminGet(action, id, null);
|
apiResponse = new API(contextReference.get()).adminGet(action, id, adminAction);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
apiResponse = new API(contextReference.get()).adminDo(action, id, adminAction);
|
apiResponse = new API(contextReference.get()).adminDo(action, id, adminAction);
|
||||||
|
|
|
@ -19,6 +19,7 @@ import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||||
|
|
||||||
|
@ -136,6 +137,7 @@ public class API {
|
||||||
GET_ONE_REPORT
|
GET_ONE_REPORT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public enum StatusAction{
|
public enum StatusAction{
|
||||||
FAVOURITE,
|
FAVOURITE,
|
||||||
UNFAVOURITE,
|
UNFAVOURITE,
|
||||||
|
@ -171,12 +173,15 @@ public class API {
|
||||||
UPDATESERVERSCHEDULE,
|
UPDATESERVERSCHEDULE,
|
||||||
DELETESCHEDULED,
|
DELETESCHEDULED,
|
||||||
REFRESHPOLL
|
REFRESHPOLL
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public enum accountPrivacy {
|
public enum accountPrivacy {
|
||||||
PUBLIC,
|
PUBLIC,
|
||||||
LOCKED
|
LOCKED
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public API(Context context) {
|
public API(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
if( context == null) {
|
if( context == null) {
|
||||||
|
@ -207,16 +212,15 @@ public class API {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute admin get actions
|
* Execute admin get actions
|
||||||
* @param action type of the action
|
* @param action type of the action
|
||||||
* @param id String can for an account or a status
|
* @param id String can for an account or a status
|
||||||
* @return APIResponse
|
* @return APIResponse
|
||||||
*/
|
*/
|
||||||
public APIResponse adminGet(adminAction action, String id, HashMap<String, String> params){
|
public APIResponse adminGet(adminAction action, String id, AdminAction adminAction){
|
||||||
apiResponse = new APIResponse();
|
apiResponse = new APIResponse();
|
||||||
|
HashMap<String, String> params = null;
|
||||||
String endpoint = null;
|
String endpoint = null;
|
||||||
switch (action){
|
switch (action){
|
||||||
case GET_ACCOUNTS:
|
case GET_ACCOUNTS:
|
||||||
|
@ -227,13 +231,19 @@ public class API {
|
||||||
break;
|
break;
|
||||||
case GET_REPORTS:
|
case GET_REPORTS:
|
||||||
endpoint = "/admin/reports";
|
endpoint = "/admin/reports";
|
||||||
|
if( !adminAction.isUnresolved()) {
|
||||||
|
params = new HashMap<>();
|
||||||
|
params.put("resolved", "present");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case GET_ONE_REPORT:
|
case GET_ONE_REPORT:
|
||||||
endpoint = String.format("/admin/reports/%s", id);
|
endpoint = String.format("/admin/reports/%s", id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
Log.v(Helper.TAG,"params: " + params);
|
||||||
String response = new HttpsConnection(context, this.instance).get(getAbsoluteUrl(endpoint), 60, params, prefKeyOauthTokenT);
|
String response = new HttpsConnection(context, this.instance).get(getAbsoluteUrl(endpoint), 60, params, prefKeyOauthTokenT);
|
||||||
|
Log.v(Helper.TAG,"response: " + response);
|
||||||
switch (action){
|
switch (action){
|
||||||
case GET_ACCOUNTS:
|
case GET_ACCOUNTS:
|
||||||
List<AccountAdmin> accountAdmins = parseAccountAdminResponse(new JSONArray(response));
|
List<AccountAdmin> accountAdmins = parseAccountAdminResponse(new JSONArray(response));
|
||||||
|
|
|
@ -26,8 +26,17 @@ public class AdminAction {
|
||||||
private adminActionType type;
|
private adminActionType type;
|
||||||
private boolean send_email_notification;
|
private boolean send_email_notification;
|
||||||
private String text;
|
private String text;
|
||||||
|
private boolean unresolved;
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isUnresolved() {
|
||||||
|
return unresolved;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnresolved(boolean unresolved) {
|
||||||
|
this.unresolved = unresolved;
|
||||||
|
}
|
||||||
|
|
||||||
public adminActionType getType() {
|
public adminActionType getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@ import app.fedilab.android.asynctasks.PostAdminActionAsyncTask;
|
||||||
import app.fedilab.android.asynctasks.RetrieveAccountsAsyncTask;
|
import app.fedilab.android.asynctasks.RetrieveAccountsAsyncTask;
|
||||||
import app.fedilab.android.client.API;
|
import app.fedilab.android.client.API;
|
||||||
import app.fedilab.android.client.APIResponse;
|
import app.fedilab.android.client.APIResponse;
|
||||||
|
import app.fedilab.android.client.Entities.AdminAction;
|
||||||
import app.fedilab.android.client.Entities.Report;
|
import app.fedilab.android.client.Entities.Report;
|
||||||
import app.fedilab.android.drawers.ReportsListAdapter;
|
import app.fedilab.android.drawers.ReportsListAdapter;
|
||||||
import app.fedilab.android.helper.Helper;
|
import app.fedilab.android.helper.Helper;
|
||||||
|
@ -73,7 +74,7 @@ public class DisplayAdminReportsFragment extends Fragment implements OnAdminActi
|
||||||
private SwipeRefreshLayout swipeRefreshLayout;
|
private SwipeRefreshLayout swipeRefreshLayout;
|
||||||
private boolean swiped;
|
private boolean swiped;
|
||||||
private RecyclerView lv_reports;
|
private RecyclerView lv_reports;
|
||||||
|
private boolean unresolved;
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
|
||||||
|
@ -83,6 +84,10 @@ public class DisplayAdminReportsFragment extends Fragment implements OnAdminActi
|
||||||
|
|
||||||
reports = new ArrayList<>();
|
reports = new ArrayList<>();
|
||||||
|
|
||||||
|
Bundle bundle = this.getArguments();
|
||||||
|
if (bundle != null) {
|
||||||
|
unresolved = bundle.getBoolean("unresolved", true);
|
||||||
|
}
|
||||||
max_id = null;
|
max_id = null;
|
||||||
firstLoad = true;
|
firstLoad = true;
|
||||||
flag_loading = true;
|
flag_loading = true;
|
||||||
|
@ -112,7 +117,9 @@ public class DisplayAdminReportsFragment extends Fragment implements OnAdminActi
|
||||||
if (firstVisibleItem + visibleItemCount == totalItemCount) {
|
if (firstVisibleItem + visibleItemCount == totalItemCount) {
|
||||||
if (!flag_loading) {
|
if (!flag_loading) {
|
||||||
flag_loading = true;
|
flag_loading = true;
|
||||||
asyncTask = new PostAdminActionAsyncTask(context, API.adminAction.GET_REPORTS, null, null, DisplayAdminReportsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
AdminAction adminAction = new AdminAction();
|
||||||
|
adminAction.setUnresolved(unresolved);
|
||||||
|
asyncTask = new PostAdminActionAsyncTask(context, API.adminAction.GET_REPORTS, null, adminAction, DisplayAdminReportsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
nextElementLoader.setVisibility(View.VISIBLE);
|
nextElementLoader.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -130,7 +137,9 @@ public class DisplayAdminReportsFragment extends Fragment implements OnAdminActi
|
||||||
firstLoad = true;
|
firstLoad = true;
|
||||||
flag_loading = true;
|
flag_loading = true;
|
||||||
swiped = true;
|
swiped = true;
|
||||||
asyncTask = new PostAdminActionAsyncTask(context, API.adminAction.GET_REPORTS, null, null, DisplayAdminReportsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
AdminAction adminAction = new AdminAction();
|
||||||
|
adminAction.setUnresolved(unresolved);
|
||||||
|
asyncTask = new PostAdminActionAsyncTask(context, API.adminAction.GET_REPORTS, null, adminAction, DisplayAdminReportsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
@ -155,8 +164,9 @@ public class DisplayAdminReportsFragment extends Fragment implements OnAdminActi
|
||||||
swipeRefreshLayout.setProgressBackgroundColorSchemeColor(ContextCompat.getColor(context, R.color.black_3));
|
swipeRefreshLayout.setProgressBackgroundColorSchemeColor(ContextCompat.getColor(context, R.color.black_3));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
AdminAction adminAction = new AdminAction();
|
||||||
asyncTask = new PostAdminActionAsyncTask(context, API.adminAction.GET_REPORTS, null, null, DisplayAdminReportsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
adminAction.setUnresolved(unresolved);
|
||||||
|
asyncTask = new PostAdminActionAsyncTask(context, API.adminAction.GET_REPORTS, null, adminAction, DisplayAdminReportsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,6 +177,12 @@ public class DisplayAdminReportsFragment extends Fragment implements OnAdminActi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh report in list
|
||||||
|
*/
|
||||||
|
public void refreshFilter(){
|
||||||
|
reportsListAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_unresolved_reports"
|
||||||
|
android:checkable="true"
|
||||||
|
android:checked="true"
|
||||||
|
android:title="@string/unresolved"
|
||||||
|
app:actionViewClass="android.widget.CheckBox"
|
||||||
|
app:showAsAction="always"
|
||||||
|
tools:ignore="AlwaysShowAction" />
|
||||||
|
</menu>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_unresolved_reports"
|
||||||
|
android:checkable="true"
|
||||||
|
android:checked="true"
|
||||||
|
android:title="@string/unresolved"
|
||||||
|
app:actionViewClass="android.widget.CheckBox"
|
||||||
|
app:showAsAction="always"
|
||||||
|
tools:ignore="AlwaysShowAction" />
|
||||||
|
</menu>
|
|
@ -1033,6 +1033,8 @@
|
||||||
<string name="no_reports">No reports to display!</string>
|
<string name="no_reports">No reports to display!</string>
|
||||||
<string name="reconnect_account">Reconnect the account</string>
|
<string name="reconnect_account">Reconnect the account</string>
|
||||||
<string name="reconnect_account_message">The application failed to access the admin features. You might need to reconnect the account for having the correct scope.</string>
|
<string name="reconnect_account_message">The application failed to access the admin features. You might need to reconnect the account for having the correct scope.</string>
|
||||||
|
<string name="unresolved">Unresolved</string>
|
||||||
|
<string name="resolved">Resolved</string>
|
||||||
<plurals name="number_of_vote">
|
<plurals name="number_of_vote">
|
||||||
<item quantity="one">%d vote</item>
|
<item quantity="one">%d vote</item>
|
||||||
<item quantity="other">%d votes</item>
|
<item quantity="other">%d votes</item>
|
||||||
|
|
|
@ -395,7 +395,7 @@
|
||||||
|
|
||||||
|
|
||||||
<!-- Light theme -->
|
<!-- Light theme -->
|
||||||
<style name="AppAdminTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
<style name="AppAdminTheme" parent="Theme.AppCompat">
|
||||||
<item name="android:textColor">@color/dark_text</item>
|
<item name="android:textColor">@color/dark_text</item>
|
||||||
<item name="colorPrimary">@color/mastodonC1</item>
|
<item name="colorPrimary">@color/mastodonC1</item>
|
||||||
<item name="colorPrimaryDark">@color/mastodonC1</item>
|
<item name="colorPrimaryDark">@color/mastodonC1</item>
|
||||||
|
@ -410,13 +410,13 @@
|
||||||
<item name="borderless">@style/borderLessLightStyle</item>
|
<item name="borderless">@style/borderLessLightStyle</item>
|
||||||
<item name="borderlessColored">@style/borderlessColoredStyle</item>
|
<item name="borderlessColored">@style/borderlessColoredStyle</item>
|
||||||
<item name="windowActionModeOverlay">true</item>
|
<item name="windowActionModeOverlay">true</item>
|
||||||
<item name="popupOverlay">@style/AppTheme.PopupOverlay</item>
|
<item name="popupOverlay">@style/AppThemeDark.PopupOverlay</item>
|
||||||
<item name="android:spinnerStyle">@style/SpinnerStyle</item>
|
<item name="android:spinnerStyle">@style/SpinnerStyle</item>
|
||||||
<item name="android:spinnerItemStyle">@style/SpinnerItemStyle</item>
|
<item name="android:spinnerItemStyle">@style/SpinnerItemStyle</item>
|
||||||
<item name="android:popupMenuStyle">@style/PopupMenu</item>
|
<item name="android:popupMenuStyle">@style/DarkPopupMenu</item>
|
||||||
<item name="android:itemBackground">@drawable/menu_selector</item>
|
<item name="android:itemBackground">@drawable/menu_selector_dark</item>
|
||||||
<item name="android:actionModeStyle">@style/ActionMode</item>
|
<item name="android:actionModeStyle">@style/DarkActionMode</item>
|
||||||
<item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
|
<item name="android:dropDownListViewStyle">@style/DarkdropDownListViewStyle</item>
|
||||||
<item name="actionBarTextColor">@color/dark_text</item>
|
<item name="actionBarTextColor">@color/dark_text</item>
|
||||||
<item name="color_in_account_header">@color/black</item>
|
<item name="color_in_account_header">@color/black</item>
|
||||||
<item name="colorBackgroundFloating">@color/mastodonC1__</item>
|
<item name="colorBackgroundFloating">@color/mastodonC1__</item>
|
||||||
|
|
Loading…
Reference in New Issue