mirror of
https://github.com/nerzhul/ownCloud-SMS-App.git
synced 2025-06-26 09:16:15 +00:00
Redesign app with material design
This commit is contained in:
parent
8b52f814ed
commit
af2f8d86e0
@ -0,0 +1,292 @@
|
|||||||
|
package fr.unix_experience.android_lib;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.support.v7.app.AppCompatActivity;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.ListAdapter;
|
||||||
|
import android.widget.ListView;
|
||||||
|
|
||||||
|
import fr.unix_experience.owncloud_sms.R;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An activity that displays a list of items by binding to a data source such as
|
||||||
|
* an array or Cursor, and exposes event handlers when the user selects an item.
|
||||||
|
* <p>
|
||||||
|
* ListActivity hosts a {@link android.widget.ListView ListView} object that can
|
||||||
|
* be bound to different data sources, typically either an array or a Cursor
|
||||||
|
* holding query results. Binding, screen layout, and row layout are discussed
|
||||||
|
* in the following sections.
|
||||||
|
* <p>
|
||||||
|
* <strong>Screen Layout</strong>
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* ListActivity has a default layout that consists of a single, full-screen list
|
||||||
|
* in the center of the screen. However, if you desire, you can customize the
|
||||||
|
* screen layout by setting your own view layout with setContentView() in
|
||||||
|
* onCreate(). To do this, your own view MUST contain a ListView object with the
|
||||||
|
* id "@android:id/list" (or {@link android.R.id#list} if it's in code)
|
||||||
|
* <p>
|
||||||
|
* Optionally, your custom view can contain another view object of any type to
|
||||||
|
* display when the list view is empty. This "empty list" notifier must have an
|
||||||
|
* id "android:id/empty". Note that when an empty view is present, the list view
|
||||||
|
* will be hidden when there is no data to display.
|
||||||
|
* <p>
|
||||||
|
* The following code demonstrates an (ugly) custom screen layout. It has a list
|
||||||
|
* with a green background, and an alternate red "no data" message.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <?xml version="1.0" encoding="utf-8"?>
|
||||||
|
* <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
* android:orientation="vertical"
|
||||||
|
* android:layout_width="match_parent"
|
||||||
|
* android:layout_height="match_parent"
|
||||||
|
* android:paddingLeft="8dp"
|
||||||
|
* android:paddingRight="8dp">
|
||||||
|
*
|
||||||
|
* <ListView android:id="@android:id/list"
|
||||||
|
* android:layout_width="match_parent"
|
||||||
|
* android:layout_height="match_parent"
|
||||||
|
* android:background="#00FF00"
|
||||||
|
* android:layout_weight="1"
|
||||||
|
* android:drawSelectorOnTop="false"/>
|
||||||
|
*
|
||||||
|
* <TextView android:id="@android:id/empty"
|
||||||
|
* android:layout_width="match_parent"
|
||||||
|
* android:layout_height="match_parent"
|
||||||
|
* android:background="#FF0000"
|
||||||
|
* android:text="No data"/>
|
||||||
|
* </LinearLayout>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <strong>Row Layout</strong>
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* You can specify the layout of individual rows in the list. You do this by
|
||||||
|
* specifying a layout resource in the ListAdapter object hosted by the activity
|
||||||
|
* (the ListAdapter binds the ListView to the data; more on this later).
|
||||||
|
* <p>
|
||||||
|
* A ListAdapter constructor takes a parameter that specifies a layout resource
|
||||||
|
* for each row. It also has two additional parameters that let you specify
|
||||||
|
* which data field to associate with which object in the row layout resource.
|
||||||
|
* These two parameters are typically parallel arrays.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* Android provides some standard row layout resources. These are in the
|
||||||
|
* {@link android.R.layout} class, and have names such as simple_list_item_1,
|
||||||
|
* simple_list_item_2, and two_line_list_item. The following layout XML is the
|
||||||
|
* source for the resource two_line_list_item, which displays two data
|
||||||
|
* fields,one above the other, for each list row.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <?xml version="1.0" encoding="utf-8"?>
|
||||||
|
* <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
* android:layout_width="match_parent"
|
||||||
|
* android:layout_height="wrap_content"
|
||||||
|
* android:orientation="vertical">
|
||||||
|
*
|
||||||
|
* <TextView android:id="@+id/text1"
|
||||||
|
* android:textSize="16sp"
|
||||||
|
* android:textStyle="bold"
|
||||||
|
* android:layout_width="match_parent"
|
||||||
|
* android:layout_height="wrap_content"/>
|
||||||
|
*
|
||||||
|
* <TextView android:id="@+id/text2"
|
||||||
|
* android:textSize="16sp"
|
||||||
|
* android:layout_width="match_parent"
|
||||||
|
* android:layout_height="wrap_content"/>
|
||||||
|
* </LinearLayout>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* You must identify the data bound to each TextView object in this layout. The
|
||||||
|
* syntax for this is discussed in the next section.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* <strong>Binding to Data</strong>
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* You bind the ListActivity's ListView object to data using a class that
|
||||||
|
* implements the {@link android.widget.ListAdapter ListAdapter} interface.
|
||||||
|
* Android provides two standard list adapters:
|
||||||
|
* {@link android.widget.SimpleAdapter SimpleAdapter} for static data (Maps),
|
||||||
|
* and {@link android.widget.SimpleCursorAdapter SimpleCursorAdapter} for Cursor
|
||||||
|
* query results.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* The following code from a custom ListActivity demonstrates querying the
|
||||||
|
* Contacts provider for all contacts, then binding the Name and Company fields
|
||||||
|
* to a two line row layout in the activity's ListView.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* public class MyListAdapter extends ListActivity {
|
||||||
|
*
|
||||||
|
* @Override
|
||||||
|
* protected void onCreate(Bundle savedInstanceState){
|
||||||
|
* super.onCreate(savedInstanceState);
|
||||||
|
*
|
||||||
|
* // We'll define a custom screen layout here (the one shown above), but
|
||||||
|
* // typically, you could just use the standard ListActivity layout.
|
||||||
|
* setContentView(R.layout.custom_list_activity_view);
|
||||||
|
*
|
||||||
|
* // Query for all people contacts using the {@link android.provider.Contacts.People} convenience class.
|
||||||
|
* // Put a managed wrapper around the retrieved cursor so we don't have to worry about
|
||||||
|
* // requerying or closing it as the activity changes state.
|
||||||
|
* mCursor = this.getContentResolver().query(People.CONTENT_URI, null, null, null, null);
|
||||||
|
* startManagingCursor(mCursor);
|
||||||
|
*
|
||||||
|
* // Now create a new list adapter bound to the cursor.
|
||||||
|
* // SimpleListAdapter is designed for binding to a Cursor.
|
||||||
|
* ListAdapter adapter = new SimpleCursorAdapter(
|
||||||
|
* this, // Context.
|
||||||
|
* android.R.layout.two_line_list_item, // Specify the row template to use (here, two columns bound to the two retrieved cursor
|
||||||
|
* rows).
|
||||||
|
* mCursor, // Pass in the cursor to bind to.
|
||||||
|
* new String[] {People.NAME, People.COMPANY}, // Array of cursor columns to bind to.
|
||||||
|
* new int[] {android.R.id.text1, android.R.id.text2}); // Parallel array of which template objects to bind to those columns.
|
||||||
|
*
|
||||||
|
* // Bind to our new adapter.
|
||||||
|
* setListAdapter(adapter);
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @see #setListAdapter
|
||||||
|
* @see android.widget.ListView
|
||||||
|
*/
|
||||||
|
public class AppCompatListActivity extends AppCompatActivity {
|
||||||
|
protected ListAdapter mAdapter;
|
||||||
|
protected ListView mList;
|
||||||
|
|
||||||
|
private Handler mHandler = new Handler();
|
||||||
|
private boolean mFinishedStart = false;
|
||||||
|
|
||||||
|
private Runnable mRequestFocus = new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
mList.focusableViewAvailable(mList);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensures the list view has been created before Activity restores all
|
||||||
|
* of the view states.
|
||||||
|
*
|
||||||
|
*@see Activity#onRestoreInstanceState(Bundle)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void onRestoreInstanceState(Bundle state) {
|
||||||
|
ensureList();
|
||||||
|
super.onRestoreInstanceState(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see Activity#onDestroy()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
mHandler.removeCallbacks(mRequestFocus);
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the screen state (current list and other views) when the
|
||||||
|
* content changes.
|
||||||
|
*
|
||||||
|
* @see Activity#onContentChanged()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onContentChanged() {
|
||||||
|
super.onContentChanged();
|
||||||
|
|
||||||
|
View emptyView = findViewById(R.id.empty);
|
||||||
|
mList = (ListView)findViewById(R.id.list);
|
||||||
|
if (mList == null) {
|
||||||
|
throw new RuntimeException(
|
||||||
|
"Your content must have a ListView whose id attribute is " +
|
||||||
|
"'android.R.id.list'");
|
||||||
|
}
|
||||||
|
if (emptyView != null) {
|
||||||
|
mList.setEmptyView(emptyView);
|
||||||
|
}
|
||||||
|
mList.setOnItemClickListener(mOnClickListener);
|
||||||
|
if (mFinishedStart) {
|
||||||
|
setListAdapter(mAdapter);
|
||||||
|
}
|
||||||
|
mHandler.post(mRequestFocus);
|
||||||
|
mFinishedStart = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide the cursor for the list view.
|
||||||
|
*/
|
||||||
|
public void setListAdapter(ListAdapter adapter) {
|
||||||
|
synchronized (this) {
|
||||||
|
ensureList();
|
||||||
|
mAdapter = adapter;
|
||||||
|
mList.setAdapter(adapter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the currently selected list item to the specified
|
||||||
|
* position with the adapter's data
|
||||||
|
*
|
||||||
|
* @param position
|
||||||
|
*/
|
||||||
|
public void setSelection(int position) {
|
||||||
|
mList.setSelection(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the position of the currently selected list item.
|
||||||
|
*/
|
||||||
|
public int getSelectedItemPosition() {
|
||||||
|
return mList.getSelectedItemPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the cursor row ID of the currently selected list item.
|
||||||
|
*/
|
||||||
|
public long getSelectedItemId() {
|
||||||
|
return mList.getSelectedItemId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the activity's list view widget.
|
||||||
|
*/
|
||||||
|
public ListView getListView() {
|
||||||
|
ensureList();
|
||||||
|
return mList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ListAdapter associated with this activity's ListView.
|
||||||
|
*/
|
||||||
|
public ListAdapter getListAdapter() {
|
||||||
|
return mAdapter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ensureList() {
|
||||||
|
if (mList != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setContentView(R.layout.default_list);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private AdapterView.OnItemClickListener mOnClickListener = new AdapterView.OnItemClickListener() {
|
||||||
|
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
|
||||||
|
{
|
||||||
|
onListItemClick((ListView)parent, v, position, id);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
@ -2,19 +2,18 @@ package fr.unix_experience.owncloud_sms.activities.remote_account;
|
|||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
import android.app.ListActivity;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
import fr.nrz.androidlib.adapters.AndroidAccountAdapter;
|
import fr.nrz.androidlib.adapters.AndroidAccountAdapter;
|
||||||
|
import fr.unix_experience.android_lib.AppCompatListActivity;
|
||||||
import fr.unix_experience.owncloud_sms.R;
|
import fr.unix_experience.owncloud_sms.R;
|
||||||
|
|
||||||
public class AccountListActivity extends ListActivity {
|
public class AccountListActivity extends AppCompatListActivity {
|
||||||
ArrayList<Account> listItems = new ArrayList<>();
|
ArrayList<Account> listItems = new ArrayList<>();
|
||||||
AndroidAccountAdapter adapter;
|
AndroidAccountAdapter adapter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
@ -2,12 +2,12 @@ package fr.unix_experience.owncloud_sms.activities.remote_account;
|
|||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
import android.app.Activity;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.provider.ContactsContract;
|
import android.provider.ContactsContract;
|
||||||
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
||||||
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
@ -23,7 +23,7 @@ import fr.unix_experience.owncloud_sms.adapters.ContactListAdapter;
|
|||||||
import fr.unix_experience.owncloud_sms.adapters.RecoveryPhoneNumberListViewAdapter;
|
import fr.unix_experience.owncloud_sms.adapters.RecoveryPhoneNumberListViewAdapter;
|
||||||
import fr.unix_experience.owncloud_sms.engine.ASyncContactLoad;
|
import fr.unix_experience.owncloud_sms.engine.ASyncContactLoad;
|
||||||
|
|
||||||
public class ContactListActivity extends Activity implements ASyncContactLoad {
|
public class ContactListActivity extends AppCompatActivity implements ASyncContactLoad {
|
||||||
|
|
||||||
static AccountManager _accountMgr;
|
static AccountManager _accountMgr;
|
||||||
ContactListAdapter adapter;
|
ContactListAdapter adapter;
|
||||||
@ -51,11 +51,6 @@ public class ContactListActivity extends Activity implements ASyncContactLoad {
|
|||||||
|
|
||||||
_layout = (SwipeRefreshLayout) findViewById(R.id.contactlist_swipe_container);
|
_layout = (SwipeRefreshLayout) findViewById(R.id.contactlist_swipe_container);
|
||||||
|
|
||||||
_layout.setColorScheme(android.R.color.holo_blue_bright,
|
|
||||||
android.R.color.holo_green_light,
|
|
||||||
android.R.color.holo_orange_light,
|
|
||||||
android.R.color.holo_red_light);
|
|
||||||
|
|
||||||
adapter = new ContactListAdapter(getBaseContext(), objects);
|
adapter = new ContactListAdapter(getBaseContext(), objects);
|
||||||
|
|
||||||
final Spinner sp = (Spinner) findViewById(R.id.contact_spinner);
|
final Spinner sp = (Spinner) findViewById(R.id.contact_spinner);
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
|
|
||||||
* All rights reserved.
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item>
|
|
||||||
<shape>
|
|
||||||
<corners android:radius="6dp" />
|
|
||||||
<gradient
|
|
||||||
android:startColor="#66b6df"
|
|
||||||
android:endColor="#56a6cf"
|
|
||||||
android:angle="270" />
|
|
||||||
<padding
|
|
||||||
android:left="10dp"
|
|
||||||
android:top="10dp"
|
|
||||||
android:right="10dp"
|
|
||||||
android:bottom="10dp" />
|
|
||||||
</shape>
|
|
||||||
</item>
|
|
||||||
</selector>
|
|
24
src/main/res/layout/default_list.xml
Normal file
24
src/main/res/layout/default_list.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/* //device/apps/common/assets/res/layout/list_content.xml
|
||||||
|
**
|
||||||
|
** Copyright 2006, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:drawSelectorOnTop="false"
|
||||||
|
/>
|
@ -37,69 +37,52 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/main_tv_accounts"
|
android:id="@+id/main_tv_accounts"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentLeft="true"
|
android:layout_alignParentLeft="true"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:text="@string/ma_title_add_account"
|
style="@style/h1"
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
android:text="@string/ma_title_add_account" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/main_button_accounts"
|
android:id="@+id/main_button_accounts"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/main_tv_accounts"
|
android:layout_below="@+id/main_tv_accounts"
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="26dp"
|
|
||||||
android:onClick="openAddAccount"
|
android:onClick="openAddAccount"
|
||||||
android:background="@drawable/standard_button"
|
|
||||||
style="@style/StandardButton"
|
style="@style/StandardButton"
|
||||||
android:text="@string/ma_button_goto_sync" />
|
android:text="@string/ma_button_goto_sync" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textView1"
|
android:id="@+id/textView1"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignLeft="@+id/main_tv_accounts"
|
android:layout_alignLeft="@+id/main_tv_accounts"
|
||||||
android:layout_alignStart="@+id/main_tv_accounts"
|
android:layout_alignStart="@+id/main_tv_accounts"
|
||||||
android:layout_below="@+id/main_button_accounts"
|
android:layout_below="@+id/main_button_accounts"
|
||||||
android:layout_marginTop="18dp"
|
style="@style/h1"
|
||||||
android:text="@string/ma_title_change_settings"
|
android:text="@string/ma_title_change_settings" />
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/main_button_settings"
|
android:id="@+id/main_button_settings"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/textView1"
|
android:layout_below="@+id/textView1"
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="19dp"
|
|
||||||
android:onClick="openAppSettings"
|
android:onClick="openAppSettings"
|
||||||
android:background="@drawable/standard_button"
|
|
||||||
style="@style/StandardButton"
|
style="@style/StandardButton"
|
||||||
android:text="@string/ma_button_goto_settings" />
|
android:text="@string/ma_button_goto_settings" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_launchsync"
|
android:id="@+id/tv_launchsync"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignLeft="@+id/main_tv_accounts"
|
android:layout_alignLeft="@+id/main_tv_accounts"
|
||||||
android:layout_alignStart="@+id/main_tv_accounts"
|
android:layout_alignStart="@+id/main_tv_accounts"
|
||||||
android:layout_below="@+id/main_button_settings"
|
android:layout_below="@+id/main_button_settings"
|
||||||
android:layout_marginTop="18dp"
|
style="@style/h1"
|
||||||
android:text="@string/ma_title_sync_all"
|
android:text="@string/ma_title_sync_all" />
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/main_button_sync"
|
android:id="@+id/main_button_sync"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_launchsync"
|
android:layout_below="@+id/tv_launchsync"
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="19dp"
|
|
||||||
android:onClick="syncAllMessages"
|
android:onClick="syncAllMessages"
|
||||||
android:background="@drawable/standard_button"
|
|
||||||
style="@style/StandardButton"
|
style="@style/StandardButton"
|
||||||
android:text="@string/ma_button_sync_accounts_now" />
|
android:text="@string/ma_button_sync_accounts_now" />
|
||||||
|
|
||||||
@ -119,10 +102,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_remoteaccount"
|
android:layout_below="@+id/tv_remoteaccount"
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="19dp"
|
|
||||||
android:onClick="selectRemoteAccount"
|
android:onClick="selectRemoteAccount"
|
||||||
android:background="@drawable/standard_button"
|
|
||||||
style="@style/StandardButton"
|
style="@style/StandardButton"
|
||||||
android:text="@string/choose_account" />
|
android:text="@string/choose_account" />
|
||||||
|
|
||||||
|
@ -37,13 +37,11 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_title_thanksto"
|
android:id="@+id/tv_title_thanksto"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentLeft="true"
|
android:layout_alignParentLeft="true"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:text="@string/ma_button_thanksto"
|
android:text="@string/ma_button_thanksto"
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
style="@style/h1" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_thankspeople"
|
android:id="@+id/tv_thankspeople"
|
||||||
@ -61,25 +59,17 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_rateUs"
|
android:layout_below="@+id/tv_rateUs"
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="15dp"
|
|
||||||
android:minHeight="36dp"
|
|
||||||
android:text="@string/ma_button_rate_us"
|
android:text="@string/ma_button_rate_us"
|
||||||
android:onClick="openGooglePlayStore"
|
android:onClick="openGooglePlayStore"
|
||||||
android:background="@drawable/standard_button"
|
style="@style/StandardButton" />
|
||||||
style="@style/StandardButton"
|
|
||||||
android:textAlignment="center" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/ma_title_rateus"
|
android:id="@+id/ma_title_rateus"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignLeft="@+id/tv_thankspeople"
|
android:layout_alignLeft="@+id/tv_thankspeople"
|
||||||
android:layout_alignStart="@+id/tv_rateUs"
|
android:layout_alignStart="@+id/tv_rateUs"
|
||||||
android:layout_below="@+id/tv_thankspeople"
|
android:layout_below="@+id/tv_thankspeople"
|
||||||
android:layout_marginTop="25dp"
|
style="@style/h1"
|
||||||
android:text="@string/ma_title_rate_us"
|
android:text="@string/ma_title_rate_us" />
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_rateUs"
|
android:id="@+id/tv_rateUs"
|
||||||
|
@ -30,19 +30,20 @@
|
|||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="fill_parent" >
|
android:layout_height="fill_parent" >
|
||||||
|
|
||||||
<!--<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
|
||||||
android:text="@string/function_not_available"
|
|
||||||
android:id="@+id/textView"
|
|
||||||
android:layout_gravity="center_horizontal"/>-->
|
|
||||||
|
|
||||||
<ListView
|
<ListView
|
||||||
android:id="@android:id/list"
|
android:id="@+id/list"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="fill_parent"
|
||||||
android:drawSelectorOnTop="true"
|
android:drawSelectorOnTop="true"
|
||||||
android:clickable="false"/>
|
android:clickable="false"/>
|
||||||
|
|
||||||
|
<TextView android:id="@+id/empty"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@android:color/white"
|
||||||
|
android:text="@string/no_account_configured"
|
||||||
|
android:padding="32dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -181,4 +181,5 @@
|
|||||||
<string name="subtitle_contact_phones">- Telefony kontaktu</string>
|
<string name="subtitle_contact_phones">- Telefony kontaktu</string>
|
||||||
<string name="pref_title_bulk_messages">Maximální počet zpráv pro odeslání na synchronizaci</string>
|
<string name="pref_title_bulk_messages">Maximální počet zpráv pro odeslání na synchronizaci</string>
|
||||||
<string name="contactinfos_list">Adresář</string>
|
<string name="contactinfos_list">Adresář</string>
|
||||||
|
<string name="no_account_configured"></string>
|
||||||
</resources>
|
</resources>
|
@ -166,5 +166,6 @@ Contributors and issue\'s reporters</string>
|
|||||||
<string name="pref_title_bulk_messages">Max messages to send per sync</string>
|
<string name="pref_title_bulk_messages">Max messages to send per sync</string>
|
||||||
<string name="contactinfos_list">Contact list</string>
|
<string name="contactinfos_list">Contact list</string>
|
||||||
<string name="function_not_available">This function is not available yet.</string>
|
<string name="function_not_available">This function is not available yet.</string>
|
||||||
|
<string name="no_account_configured">No account configured.</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -151,4 +151,5 @@ Les contributeurs et rapporteurs de bugs</string>
|
|||||||
<string name="pref_title_bulk_messages">Nombre maximum de messages à envoyer par synchronisation</string>
|
<string name="pref_title_bulk_messages">Nombre maximum de messages à envoyer par synchronisation</string>
|
||||||
<string name="contactinfos_list">Liste des contacts</string>
|
<string name="contactinfos_list">Liste des contacts</string>
|
||||||
<string name="function_not_available">Cette fonctionnalité n\'est pas encore disponibleeems.</string>
|
<string name="function_not_available">Cette fonctionnalité n\'est pas encore disponibleeems.</string>
|
||||||
|
<string name="no_account_configured">Vous n\'avez pas configuré de compte.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -28,12 +28,7 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<style name="OcSmsTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
<style name="OcSmsTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
<item name="android:actionBarStyle">@style/OcSmsActionBar</item>
|
<item name="colorPrimary">@color/oc_primary</item>
|
||||||
</style>
|
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
|
||||||
|
|
||||||
<style name="OcSmsActionBar"
|
|
||||||
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
|
|
||||||
<item name="android:background">#56a6cf</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
14
src/main/res/values-v21/styles.xml
Normal file
14
src/main/res/values-v21/styles.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
|
<item name="android:navigationBarColor">@color/oc_primary</item>
|
||||||
|
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
|
||||||
|
<item name="colorPrimary">@color/oc_primary</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="OcSmsTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
|
<item name="colorPrimary">@color/oc_primary</item>
|
||||||
|
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
|
||||||
|
<item name="android:navigationBarColor">@color/oc_primary</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
5
src/main/res/values/colors.xml
Normal file
5
src/main/res/values/colors.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="oc_primary">#1d2d44</color>
|
||||||
|
<color name="oc_primary_dark">#112233</color>
|
||||||
|
</resources>
|
@ -164,6 +164,7 @@ Contributors and issue\'s reporters</string>
|
|||||||
<!-- Restauration -->
|
<!-- Restauration -->
|
||||||
<string name="title_activity_select_account">Select account</string>
|
<string name="title_activity_select_account">Select account</string>
|
||||||
<string name="title_activity_select_contact">Select contact</string>
|
<string name="title_activity_select_contact">Select contact</string>
|
||||||
|
<string name="no_account_configured">No account configured.</string>
|
||||||
|
|
||||||
<!-- Notifications -->
|
<!-- Notifications -->
|
||||||
<string name="sync_title">Sync process</string>
|
<string name="sync_title">Sync process</string>
|
||||||
|
@ -27,14 +27,26 @@
|
|||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
|
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
|
||||||
|
<item name="colorPrimary">@color/oc_primary</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- Application theme. -->
|
<!-- Application theme. -->
|
||||||
<style name="AppTheme" parent="AppBaseTheme">
|
<style name="AppTheme" parent="AppBaseTheme">
|
||||||
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
|
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
|
||||||
</style>
|
</style>
|
||||||
<style name="StandardButton">
|
<style name="StandardButton">
|
||||||
|
<item name="android:background">@color/oc_primary</item>
|
||||||
|
<item name="android:layout_marginTop">15dp</item>
|
||||||
|
<item name="android:layout_centerHorizontal">true</item>
|
||||||
<item name="android:textColor">#ffffff</item>
|
<item name="android:textColor">#ffffff</item>
|
||||||
|
<item name="android:padding">10dp</item>
|
||||||
|
</style>
|
||||||
|
<style name="h1">
|
||||||
|
<item name="android:textColor">@color/oc_primary_dark</item>
|
||||||
|
<item name="android:layout_marginTop">18dp</item>
|
||||||
|
<item name="android:layout_width">wrap_content</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user