Commit 17fbae2a authored by Ricki Hirner's avatar Ricki Hirner

Account management: Create address book (similar to create calendar)

parent 9e2bcda0
......@@ -131,9 +131,9 @@
</activity>
<activity android:name=".ui.AccountSettingsActivity"/>
<activity android:name=".ui.CreateAddressBookActivity"
android:label="@string/create_address_book_title"/>
android:label="@string/create_addressbook"/>
<activity android:name=".ui.CreateCalendarActivity"
android:label="@string/create_calendar_title"/>
android:label="@string/create_calendar"/>
<activity
android:name=".ui.DebugInfoActivity"
android:exported="true"
......
......@@ -10,13 +10,14 @@ package at.bitfire.davdroid.log;
import android.util.Log;
import org.apache.commons.lang3.math.NumberUtils;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
public class LogcatHandler extends Handler {
private static final String TAG = "davdroid";
private static final int MAX_LINE_LENGTH = 3000;
public static final LogcatHandler INSTANCE = new LogcatHandler();
private LogcatHandler() {
......@@ -27,19 +28,24 @@ public class LogcatHandler extends Handler {
@Override
public void publish(LogRecord r) {
String line = getFormatter().format(r);
String text = getFormatter().format(r);
int level = r.getLevel().intValue();
if (level >= Level.SEVERE.intValue())
Log.e(r.getLoggerName(), line);
else if (level >= Level.WARNING.intValue())
Log.w(r.getLoggerName(), line);
else if (level >= Level.CONFIG.intValue())
Log.i(r.getLoggerName(), line);
else if (level >= Level.FINER.intValue())
Log.d(r.getLoggerName(), line);
else
Log.v(r.getLoggerName(), line);
int end = text.length();
for (int pos = 0; pos < end; pos += MAX_LINE_LENGTH) {
String line = text.substring(pos, NumberUtils.min(pos + MAX_LINE_LENGTH, end));
if (level >= Level.SEVERE.intValue())
Log.e(r.getLoggerName(), line);
else if (level >= Level.WARNING.intValue())
Log.w(r.getLoggerName(), line);
else if (level >= Level.CONFIG.intValue())
Log.i(r.getLoggerName(), line);
else if (level >= Level.FINER.intValue())
Log.d(r.getLoggerName(), line);
else
Log.v(r.getLoggerName(), line);
}
}
@Override
......
......@@ -34,6 +34,7 @@ import android.os.Bundle;
import android.os.IBinder;
import android.provider.CalendarContract;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatRadioButton;
......@@ -65,6 +66,7 @@ import at.bitfire.davdroid.App;
import at.bitfire.davdroid.DavService;
import at.bitfire.davdroid.R;
import at.bitfire.davdroid.model.CollectionInfo;
import at.bitfire.davdroid.model.ServiceDB;
import at.bitfire.davdroid.model.ServiceDB.Collections;
import at.bitfire.davdroid.model.ServiceDB.OpenHelper;
import at.bitfire.davdroid.model.ServiceDB.Services;
......@@ -253,6 +255,7 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
long id;
boolean refreshing;
boolean hasHomeSets;
List<CollectionInfo> collections;
}
}
......@@ -279,6 +282,8 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
listCardDAV.setEnabled(!info.carddav.refreshing);
listCardDAV.setAlpha(info.carddav.refreshing ? 0.5f : 1);
tbCardDAV.getMenu().findItem(R.id.create_address_book).setVisible(info.carddav.hasHomeSets);
AddressBookAdapter adapter = new AddressBookAdapter(this);
adapter.addAll(info.carddav.collections);
listCardDAV.setAdapter(adapter);
......@@ -296,6 +301,8 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
listCalDAV.setEnabled(!info.caldav.refreshing);
listCalDAV.setAlpha(info.caldav.refreshing ? 0.5f : 1);
tbCalDAV.getMenu().findItem(R.id.create_calendar).setVisible(info.caldav.hasHomeSets);
final CalendarAdapter adapter = new CalendarAdapter(this);
adapter.addAll(info.caldav.collections);
listCalDAV.setAdapter(adapter);
......@@ -370,12 +377,14 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
info.carddav = new AccountInfo.ServiceInfo();
info.carddav.id = id;
info.carddav.refreshing = davService.isRefreshing(id);
info.carddav.hasHomeSets = hasHomeSets(db, id);
info.carddav.collections = readCollections(db, id);
} else if (Services.SERVICE_CALDAV.equals(service)) {
info.caldav = new AccountInfo.ServiceInfo();
info.caldav.id = id;
info.caldav.refreshing = davService.isRefreshing(id);
info.caldav.hasHomeSets = hasHomeSets(db, id);
info.caldav.collections = readCollections(db, id);
}
}
......@@ -385,10 +394,16 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
return info;
}
private List<CollectionInfo> readCollections(SQLiteDatabase db, long service) {
private boolean hasHomeSets(@NonNull SQLiteDatabase db, long service) {
@Cleanup Cursor cursor = db.query(ServiceDB.HomeSets._TABLE, null, ServiceDB.HomeSets.SERVICE_ID + "=?",
new String[] { String.valueOf(service) }, null, null, null);
return cursor.getCount() > 0;
}
private List<CollectionInfo> readCollections(@NonNull SQLiteDatabase db, long service) {
List<CollectionInfo> collections = new LinkedList<>();
@Cleanup Cursor cursor = db.query(Collections._TABLE, Collections._COLUMNS, Collections.SERVICE_ID + "=?", new String[]{String.valueOf(service)},
null, null, Collections.SUPPORTS_VEVENT + " DESC," + Collections.DISPLAY_NAME);
@Cleanup Cursor cursor = db.query(Collections._TABLE, Collections._COLUMNS, Collections.SERVICE_ID + "=?",
new String[]{ String.valueOf(service )}, null, null, Collections.SUPPORTS_VEVENT + " DESC," + Collections.DISPLAY_NAME);
while (cursor.moveToNext()) {
ContentValues values = new ContentValues();
DatabaseUtils.cursorRowToContentValues(cursor, values);
......
......@@ -20,7 +20,6 @@ import android.support.v4.app.NavUtils;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatSpinner;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
......@@ -28,6 +27,7 @@ import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;
import net.fortuna.ical4j.model.Calendar;
......@@ -82,7 +82,7 @@ public class CreateCalendarActivity extends AppCompatActivity implements LoaderM
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_create_calendar, menu);
getMenuInflater().inflate(R.menu.activity_create_collection, menu);
return true;
}
......@@ -97,17 +97,17 @@ public class CreateCalendarActivity extends AppCompatActivity implements LoaderM
return false;
}
public void onCreateCalendar(MenuItem item) {
public void onCreateCollection(MenuItem item) {
boolean ok = true;
CollectionInfo info = new CollectionInfo();
AppCompatSpinner spinner = (AppCompatSpinner)findViewById(R.id.home_set);
Spinner spinner = (Spinner)findViewById(R.id.home_sets);
String homeSet = (String)spinner.getSelectedItem();
EditText edit = (EditText)findViewById(R.id.display_name);
info.displayName = edit.getText().toString();
if (TextUtils.isEmpty(info.displayName)) {
edit.setError("Enter a calendar title.");
edit.setError(getString(R.string.create_collection_display_name_required));
ok = false;
}
......@@ -117,7 +117,7 @@ public class CreateCalendarActivity extends AppCompatActivity implements LoaderM
View view = findViewById(R.id.color);
info.color = ((ColorDrawable)view.getBackground()).getColor();
spinner = (AppCompatSpinner)findViewById(R.id.time_zone);
spinner = (Spinner)findViewById(R.id.time_zone);
net.fortuna.ical4j.model.TimeZone tz = DateUtils.tzRegistry.getTimeZone((String)spinner.getSelectedItem());
if (tz != null) {
Calendar cal = new Calendar();
......@@ -154,7 +154,7 @@ public class CreateCalendarActivity extends AppCompatActivity implements LoaderM
@Override
public void onLoadFinished(Loader<AccountInfo> loader, AccountInfo info) {
AppCompatSpinner spinner = (AppCompatSpinner)findViewById(R.id.time_zone);
Spinner spinner = (Spinner)findViewById(R.id.time_zone);
String[] timeZones = TimeZone.getAvailableIDs();
spinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, timeZones));
// select system time zone
......@@ -166,7 +166,7 @@ public class CreateCalendarActivity extends AppCompatActivity implements LoaderM
}
if (info != null) {
spinner = (AppCompatSpinner)findViewById(R.id.home_set);
spinner = (Spinner)findViewById(R.id.home_sets);
spinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, info.homeSets));
}
}
......
......@@ -7,11 +7,7 @@
~ http://www.gnu.org/licenses/gpl.html
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/create_address_book"
app:showAsAction="always"
android:title="Create address book"/>
</menu>
\ No newline at end of file
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@android:color/darker_gray"/>
<item android:color="@android:color/black"/>
</selector>
\ No newline at end of file
......@@ -14,7 +14,7 @@
android:padding="8dp"
android:gravity="center_vertical">
<android.support.v7.widget.AppCompatRadioButton
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
......
......@@ -14,11 +14,8 @@
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
android:layout_height="wrap_content"
android:padding="@dimen/activity_margin">
<android.support.v7.widget.CardView
android:id="@+id/carddav"
......
......@@ -7,37 +7,53 @@
~ http://www.gnu.org/licenses/gpl.html
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/homeset_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Home set:"/>
<Spinner
android:id="@+id/homeset"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Title"/>
<EditText
android:id="@+id/path_segment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Path segment (collection name)"/>
<EditText
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Description"/>
</LinearLayout>
\ No newline at end of file
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/activity_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/create_addressbook"
android:textAppearance="@style/TextView.Heading"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/create_collection_home_set"/>
<Spinner
android:id="@+id/home_sets"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/create_collection_display_name"/>
<EditText
android:id="@+id/display_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="@string/create_addressbook_display_name_hint"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/create_collection_description"/>
<EditText
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:inputType="textAutoCorrect"/>
</LinearLayout>
</ScrollView>
\ No newline at end of file
......@@ -13,20 +13,21 @@
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content"
android:padding="@dimen/activity_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create CalDAV collection"
android:text="@string/create_calendar"
android:textAppearance="@style/TextView.Heading"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Home set:"/>
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/home_set"
android:text="@string/create_collection_home_set"/>
<Spinner
android:id="@+id/home_sets"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"/>
......@@ -34,24 +35,24 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Display name (title) of this collection:"/>
android:text="@string/create_collection_display_name"/>
<EditText
android:id="@+id/display_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="My Calendar"/>
android:hint="@string/create_calendar_display_name_hint"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Description (optional):"/>
android:text="@string/create_collection_description"/>
<EditText
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Calendar description"/>
android:inputType="textAutoCorrect"/>
<LinearLayout
android:layout_width="match_parent"
......@@ -71,15 +72,15 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set a collection color"/>
android:text="@string/create_collection_color"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time zone:"/>
<android.support.v7.widget.AppCompatSpinner
android:text="@string/create_calendar_time_zone"/>
<Spinner
android:id="@+id/time_zone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
......@@ -87,7 +88,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Collection type"
android:text="@string/create_calendar_type"
android:textAppearance="@style/TextView.Heading"/>
<RadioGroup
......@@ -95,24 +96,24 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatRadioButton
<RadioButton
android:id="@+id/type_events"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="true"
android:text="Calendar (only events)"/>
android:text="@string/create_calendar_type_only_events"/>
<android.support.v7.widget.AppCompatRadioButton
<RadioButton
android:id="@+id/type_tasks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Task list (only tasks)"/>
android:text="@string/create_calendar_type_only_tasks"/>
<android.support.v7.widget.AppCompatRadioButton
<RadioButton
android:id="@+id/type_events_and_tasks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Combined (events and tasks)"/>
android:text="@string/create_calendar_type_events_and_tasks"/>
</RadioGroup>
......
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright © 2013 – 2016 Ricki Hirner (bitfire web engineering).
~ All rights reserved. This program and the accompanying materials
~ are made available under the terms of the GNU Public License v3.0
~ which accompanies this distribution, and is available at
~ http://www.gnu.org/licenses/gpl.html
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/displayName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Display name"/>
<EditText
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Description"
android:lines="2"/>
</LinearLayout>
\ No newline at end of file
......@@ -18,7 +18,7 @@
android:layout_weight="1"
android:inputType="textPassword"/>
<android.support.v7.widget.AppCompatCheckBox
<CheckBox
android:id="@+id/show_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......
......@@ -16,10 +16,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin">
android:layout_margin="@dimen/activity_margin">
<LinearLayout
android:layout_width="match_parent"
......
......@@ -25,10 +25,7 @@
<ScrollView android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin">
android:layout_margin="@dimen/activity_margin">
<RadioGroup
android:layout_width="match_parent"
......@@ -36,7 +33,7 @@
android:orientation="vertical"
android:animateLayoutChanges="true">
<android.support.v7.widget.AppCompatRadioButton
<RadioButton
android:id="@+id/login_type_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -63,7 +60,7 @@
android:layout_height="wrap_content"/>
</LinearLayout>
<android.support.v7.widget.AppCompatRadioButton
<RadioButton
android:id="@+id/login_type_url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -96,7 +93,7 @@
android:layout_height="wrap_content"
android:hint="@string/login_password"/>
<android.support.v7.widget.AppCompatCheckBox
<CheckBox
android:id="@+id/preemptive_auth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......
......@@ -13,10 +13,7 @@
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:padding="@dimen/activity_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
......
......@@ -10,6 +10,6 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/delete_collection"
android:title="Delete collection"/>
android:title="@string/delete_collection"/>
</menu>
\ No newline at end of file
......@@ -10,8 +10,8 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:title="Create calendar"
android:onClick="onCreateCalendar"
<item android:title="Create"
android:onClick="onCreateCollection"
app:showAsAction="always"/>
</menu>
\ No newline at end of file
......@@ -12,8 +12,6 @@
<item android:id="@+id/refresh_calendars"
android:title="@string/account_refresh_calendar_list"/>
<item android:id="@+id/add_calendar"
android:title="@string/account_add_existing_calendar"/>
<item android:id="@+id/create_calendar"
android:title="@string/account_create_new_calendar"/>
......
......@@ -12,8 +12,6 @@
<item android:id="@+id/refresh_address_books"
android:title="@string/account_refresh_address_book_list"/>
<item android:id="@+id/add_address_book"
android:title="@string/account_add_existing_address_book"/>
<item android:id="@+id/create_address_book"
android:title="@string/account_create_new_address_book"/>
......
......@@ -10,8 +10,7 @@
<resources>
<dimen name="leftcol_width">320dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">20dp</dimen>
<dimen name="activity_margin">16dp</dimen>
<dimen name="fab_margin">16dp</dimen>
......
......@@ -6,7 +6,7 @@
~ http://www.gnu.org/licenses/gpl.html
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<resources>
<item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item>
<item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item>
<item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item>
......
......@@ -178,12 +178,24 @@
<string name="settings_sync_time_range_past_message">Events which are more than this number of days in the past (may be 0) will be ignored. Leave blank to synchronize all events.</string>
<!-- collection management -->
<string name="create_address_book_title">Create address book</string>
<string name="create_address_book_creating">Creating address book</string>
<string name="create_calendar_title">Create calendar</string>
<string name="create_addressbook">Create address book</string>
<string name="create_addressbook_display_name_hint">My Address Book</string>
<string name="create_calendar">Create CalDAV collection</string>
<string name="create_calendar_display_name_hint">My Calendar</string>
<string name="create_calendar_time_zone">Time zone:</string>
<string name="create_calendar_type">Collection type:</string>
<string name="create_calendar_type_only_events">Calendar (only events)</string>
<string name="create_calendar_type_only_tasks">Task list (only tasks)</string>
<string name="create_calendar_type_events_and_tasks">Combined (events and tasks)</string>
<string name="create_collection_color">Set a collection color</string>
<string name="create_collection_creating">Creating collection</string>
<string name="create_collection_display_name">Display name (title) of this collection:</string>
<string name="create_collection_display_name_required">A title is required</string>
<string name="create_collection_description">Description (optional):</string>
<string name="create_collection_home_set">Home set:</string>
<string name="delete_collection">Delete collection</string>
<string name="delete_collection_confirm_title">Are you sure?</string>
<string name="delete_collection_confirm_warning">This collection (%s) and all its entries from the server will be removed from the server.</string>
<string name="delete_collection_confirm_warning">This collection (%s) and all its data will be removed from the server.</string>
<string name="delete_collection_deleting_collection">Deleting collection</string>
<!-- ExceptionInfoFragment -->
......
......@@ -30,10 +30,11 @@
<!-- app theme -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="alertDialogTheme">@style/AppTheme.Dialog.Alert</item>
<item name="colorPrimary">@color/light_green500</item>
<item name="colorPrimaryDark">@color/light_green700</item>
<item name="colorAccent">@color/orangeA700</item>
<item name="android:textColorPrimary">@color/black</item>
<item name="android:textColorPrimary">@drawable/text_color</item>
<item name="android:textColorSecondary">@color/grey</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
......@@ -44,6 +45,13 @@
</style>
<!-- dialogs -->
<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">@color/orangeA700</item>
</style>
<!-- AddAccountActivity -->
<style name="login_type_headline">
......@@ -93,7 +101,6 @@
<!-- text content -->
<style name="TextView.Heading" parent="AppTheme">
<item name="android:layout_marginBottom">8dp</item>
<item name="android:textSize">22sp</item>
<item name="android:textColor">@color/orangeA700</item>
</style>
......
Subproject commit d3cb90c629824e5e95b2c9236c2fc91e9a6dd7c9
Subproject commit 5e7334cea2bbaacde7f61b9806c907ba7404753d
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment