mirror of
https://github.com/MatomoCamp/matomocamp-companion-android.git
synced 2024-09-19 16:13:46 +02:00
Migrate to AppCompat 23.1.1
Removed legacy hacks Material dialogs on older versions
This commit is contained in:
parent
63bd76f5ed
commit
9ffa61f70b
18 changed files with 59 additions and 97 deletions
|
@ -1,13 +1,13 @@
|
|||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 21
|
||||
buildToolsVersion "21.1.2"
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.2"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "be.digitalia.fosdem"
|
||||
minSdkVersion 7
|
||||
targetSdkVersion 21
|
||||
targetSdkVersion 23
|
||||
versionCode 700131
|
||||
versionName "1.3.1"
|
||||
}
|
||||
|
@ -21,12 +21,11 @@ android {
|
|||
}
|
||||
|
||||
ext {
|
||||
supportLibraryVersion = '21.0.3'
|
||||
supportLibraryVersion = '23.1.1'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "com.android.support:appcompat-v7:$supportLibraryVersion"
|
||||
compile "com.android.support:cardview-v7:$supportLibraryVersion"
|
||||
// Version 1.2.3 has a bug and crashes when detecting 2-finger gestures. Use 1.2.2 instead.
|
||||
compile 'com.github.chrisbanes.photoview:library:1.2.2'
|
||||
compile 'com.github.chrisbanes.photoview:library:1.2.4'
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
android:name=".activities.RoomImageDialogActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/DialogTheme"/>
|
||||
android:theme="@style/AlertDialogTheme"/>
|
||||
<activity
|
||||
android:name=".activities.SettingsActivity"
|
||||
android:label="@string/settings"/>
|
||||
|
|
|
@ -10,7 +10,7 @@ import android.support.v4.app.NavUtils;
|
|||
import android.support.v4.app.TaskStackBuilder;
|
||||
import android.support.v4.content.Loader;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -27,7 +27,7 @@ import be.digitalia.fosdem.utils.NfcUtils.CreateNfcAppDataCallback;
|
|||
*
|
||||
* @author Christophe Beyls
|
||||
*/
|
||||
public class EventDetailsActivity extends ActionBarActivity implements LoaderCallbacks<Event>, CreateNfcAppDataCallback {
|
||||
public class EventDetailsActivity extends AppCompatActivity implements LoaderCallbacks<Event>, CreateNfcAppDataCallback {
|
||||
|
||||
public static final String EXTRA_EVENT = "event";
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package be.digitalia.fosdem.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.SearchManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
|
@ -27,8 +26,9 @@ import android.support.v4.app.FragmentTransaction;
|
|||
import android.support.v4.content.LocalBroadcastManager;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.ActionBarDrawerToggle;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.SpannableString;
|
||||
|
@ -67,7 +67,7 @@ import be.digitalia.fosdem.widgets.AdapterLinearLayout;
|
|||
*
|
||||
* @author Christophe Beyls
|
||||
*/
|
||||
public class MainActivity extends ActionBarActivity {
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private enum Section {
|
||||
TRACKS(TracksFragment.class, R.string.menu_tracks, R.drawable.ic_event_grey600_24dp, true),
|
||||
|
|
|
@ -3,7 +3,7 @@ package be.digitalia.fosdem.activities;
|
|||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.TextView;
|
||||
|
@ -12,7 +12,7 @@ import be.digitalia.fosdem.R;
|
|||
import be.digitalia.fosdem.fragments.PersonInfoListFragment;
|
||||
import be.digitalia.fosdem.model.Person;
|
||||
|
||||
public class PersonInfoActivity extends ActionBarActivity {
|
||||
public class PersonInfoActivity extends AppCompatActivity {
|
||||
|
||||
public static final String EXTRA_PERSON = "person";
|
||||
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
package be.digitalia.fosdem.activities;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import be.digitalia.fosdem.R;
|
||||
|
||||
/**
|
||||
* A special Activity which is displayed like a dialog and shows a room image. Specify the room name and the room image id as Intent extras.
|
||||
*
|
||||
* @author Christophe Beyls
|
||||
*
|
||||
*/
|
||||
public class RoomImageDialogActivity extends Activity {
|
||||
public class RoomImageDialogActivity extends AppCompatActivity {
|
||||
|
||||
public static final String EXTRA_ROOM_NAME = "roomName";
|
||||
public static final String EXTRA_ROOM_IMAGE_RESOURCE_ID = "imageResId";
|
||||
|
@ -25,6 +26,9 @@ public class RoomImageDialogActivity extends Activity {
|
|||
|
||||
ImageView imageView = new ImageView(this);
|
||||
imageView.setImageResource(intent.getIntExtra(EXTRA_ROOM_IMAGE_RESOURCE_ID, 0));
|
||||
int padding = getResources().getDimensionPixelSize(R.dimen.content_margin);
|
||||
imageView.setPadding(padding, padding, padding, padding);
|
||||
|
||||
setContentView(imageView);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import android.os.Build;
|
|||
import android.os.Bundle;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
@ -17,7 +17,7 @@ import be.digitalia.fosdem.R;
|
|||
import be.digitalia.fosdem.fragments.MessageDialogFragment;
|
||||
import be.digitalia.fosdem.fragments.SearchResultListFragment;
|
||||
|
||||
public class SearchResultActivity extends ActionBarActivity {
|
||||
public class SearchResultActivity extends AppCompatActivity {
|
||||
|
||||
public static final int MIN_SEARCH_LENGTH = 3;
|
||||
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
package be.digitalia.fosdem.activities;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import be.digitalia.fosdem.R;
|
||||
import be.digitalia.fosdem.fragments.SettingsFragment;
|
||||
|
||||
public class SettingsActivity extends ActionBarActivity {
|
||||
public class SettingsActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
|
|
@ -7,7 +7,7 @@ import android.support.v4.app.FragmentManager;
|
|||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.app.NavUtils;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.ImageView;
|
||||
|
@ -27,7 +27,7 @@ import be.digitalia.fosdem.utils.NfcUtils.CreateNfcAppDataCallback;
|
|||
*
|
||||
* @author Christophe Beyls
|
||||
*/
|
||||
public class TrackScheduleActivity extends ActionBarActivity
|
||||
public class TrackScheduleActivity extends AppCompatActivity
|
||||
implements TrackScheduleListFragment.Callbacks,
|
||||
EventDetailsFragment.FloatingActionButtonProvider,
|
||||
CreateNfcAppDataCallback {
|
||||
|
|
|
@ -10,7 +10,7 @@ import android.support.v4.app.LoaderManager.LoaderCallbacks;
|
|||
import android.support.v4.content.Loader;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
|
@ -31,7 +31,7 @@ import be.digitalia.fosdem.utils.NfcUtils.CreateNfcAppDataCallback;
|
|||
* @author Christophe Beyls
|
||||
*
|
||||
*/
|
||||
public class TrackScheduleEventActivity extends ActionBarActivity implements LoaderCallbacks<Cursor>, CreateNfcAppDataCallback {
|
||||
public class TrackScheduleEventActivity extends AppCompatActivity implements LoaderCallbacks<Cursor>, CreateNfcAppDataCallback {
|
||||
|
||||
public static final String EXTRA_DAY = "day";
|
||||
public static final String EXTRA_TRACK = "track";
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package be.digitalia.fosdem.fragments;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
|
||||
/**
|
||||
* A generic class to display a simple message in a dialog box.
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
package be.digitalia.fosdem.fragments;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.DrawableRes;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import be.digitalia.fosdem.R;
|
||||
|
||||
public class RoomImageDialogFragment extends DialogFragment {
|
||||
|
@ -30,8 +31,12 @@ public class RoomImageDialogFragment extends DialogFragment {
|
|||
|
||||
ImageView imageView = new ImageView(getActivity());
|
||||
imageView.setImageResource(args.getInt("imageResId"));
|
||||
int padding = getResources().getDimensionPixelSize(R.dimen.content_margin);
|
||||
imageView.setPadding(padding, padding, padding, padding);
|
||||
|
||||
Dialog dialog = new AlertDialog.Builder(getActivity()).setTitle(args.getString("roomName")).setView(imageView).create();
|
||||
Dialog dialog = new AlertDialog.Builder(getActivity())
|
||||
.setTitle(args.getString("roomName"))
|
||||
.setView(imageView).create();
|
||||
dialog.getWindow().getAttributes().windowAnimations = R.style.RoomImageDialogAnimations;
|
||||
return dialog;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ import android.support.v4.view.PagerAdapter;
|
|||
import android.support.v4.view.ViewPager;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
@ -65,7 +64,6 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
private int mItemBackground;
|
||||
|
||||
private ViewPager mViewPager;
|
||||
private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
|
||||
|
||||
private TabListener mTabListener;
|
||||
|
||||
|
@ -80,9 +78,7 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
}
|
||||
|
||||
public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(themifyContext(context, attrs, defStyle), attrs, defStyle);
|
||||
// Ensure we use the wrapped Context
|
||||
context = getContext();
|
||||
super(context, attrs, defStyle);
|
||||
|
||||
// Disable the Scroll Bar
|
||||
setHorizontalScrollBarEnabled(false);
|
||||
|
@ -149,17 +145,6 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
setTextColor(ColorStateList.valueOf(color));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are
|
||||
* required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so
|
||||
* that the layout can update it's scroll position correctly.
|
||||
*
|
||||
* @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener)
|
||||
*/
|
||||
public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) {
|
||||
mViewPagerPageChangeListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the custom layout to be inflated for the tab views.
|
||||
*
|
||||
|
@ -182,7 +167,7 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
public void setViewPager(ViewPager viewPager) {
|
||||
mViewPager = viewPager;
|
||||
if (viewPager != null) {
|
||||
viewPager.setOnPageChangeListener(new InternalViewPagerListener());
|
||||
viewPager.addOnPageChangeListener(new InternalViewPagerListener());
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
@ -304,20 +289,11 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
|
||||
|
||||
scrollToTab(position, positionOffset);
|
||||
|
||||
if (mViewPagerPageChangeListener != null) {
|
||||
mViewPagerPageChangeListener.onPageScrolled(position, positionOffset,
|
||||
positionOffsetPixels);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
mScrollState = state;
|
||||
|
||||
if (mViewPagerPageChangeListener != null) {
|
||||
mViewPagerPageChangeListener.onPageScrollStateChanged(state);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -329,9 +305,6 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
for (int i = 0; i < mTabStrip.getChildCount(); i++) {
|
||||
mTabStrip.getChildAt(i).setSelected(position == i);
|
||||
}
|
||||
if (mViewPagerPageChangeListener != null) {
|
||||
mViewPagerPageChangeListener.onPageSelected(position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -356,18 +329,4 @@ public class SlidingTabLayout extends HorizontalScrollView {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows us to emulate the {@code android:theme} attribute for devices before L.
|
||||
*/
|
||||
private static Context themifyContext(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Toolbar,
|
||||
defStyleAttr, 0);
|
||||
final int themeId = a.getResourceId(R.styleable.Toolbar_theme, 0);
|
||||
if (themeId != 0) {
|
||||
context = new ContextThemeWrapper(context, themeId);
|
||||
}
|
||||
a.recycle();
|
||||
return context;
|
||||
}
|
||||
}
|
11
app/src/main/res/drawable-v11/activated_background.xml
Normal file
11
app/src/main/res/drawable-v11/activated_background.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:state_activated="true">
|
||||
<shape>
|
||||
<solid android:color="@color/fosdem_blue_translucent"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:drawable="@android:color/transparent"/>
|
||||
|
||||
</selector>
|
|
@ -1,11 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:state_activated="true">
|
||||
<shape>
|
||||
<solid android:color="@color/fosdem_blue_translucent"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:drawable="@android:color/transparent"/>
|
||||
|
||||
</selector>
|
||||
<color
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@android:color/transparent"/>
|
|
@ -3,16 +3,7 @@
|
|||
|
||||
<!-- Main theme -->
|
||||
|
||||
<style name="AppTheme" parent="Base.AppTheme">
|
||||
<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="AlertDialogTheme" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:colorPrimary">@color/color_primary</item>
|
||||
<item name="android:colorPrimaryDark">@color/color_primary_dark</item>
|
||||
<item name="android:colorAccent">@color/color_accent</item>
|
||||
<item name="android:textColorLink">?android:attr/colorAccent</item>
|
||||
</style>
|
||||
<style name="AppTheme" parent="Base.AppTheme"/>
|
||||
|
||||
<!-- Styles -->
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<attr name="activatedBackgroundIndicator" format="reference"/>
|
||||
|
||||
<declare-styleable name="SlidingTabLayout">
|
||||
<attr name="theme"/>
|
||||
<attr name="indicatorColor" format="color"/>
|
||||
<attr name="indicatorHeight" format="reference|dimension"/>
|
||||
<attr name="textColor" format="color"/>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<item name="colorPrimary">@color/color_primary</item>
|
||||
<item name="colorPrimaryDark">@color/color_primary_dark</item>
|
||||
<item name="colorAccent">@color/color_accent</item>
|
||||
<item name="android:textColorLink">?attr/colorAccent</item>
|
||||
<item name="alertDialogTheme">@style/AlertDialogTheme</item>
|
||||
|
||||
<item name="activatedBackgroundIndicator">@drawable/activated_background</item>
|
||||
</style>
|
||||
|
@ -22,12 +22,12 @@
|
|||
|
||||
<style name="AppTheme.NoActionBar">
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
<!-- Allows the action mode icons to be shown on top of the Toolbar -->
|
||||
<item name="windowActionModeOverlay">true</item>
|
||||
</style>
|
||||
|
||||
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
|
||||
<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
|
||||
<item name="colorPrimary">@color/color_primary</item>
|
||||
<item name="colorPrimaryDark">@color/color_primary_dark</item>
|
||||
<item name="colorAccent">@color/color_accent</item>
|
||||
|
@ -71,7 +71,7 @@
|
|||
</style>
|
||||
|
||||
<style name="SlidingTabs">
|
||||
<item name="theme">@style/ThemeOverlay.AppCompat.Dark</item>
|
||||
<item name="android:theme">@style/ThemeOverlay.AppCompat.Dark</item>
|
||||
<item name="android:background">?attr/colorPrimary</item>
|
||||
<item name="indicatorColor">@android:color/white</item>
|
||||
<item name="textColor">@color/tab_text</item>
|
||||
|
|
Loading…
Reference in a new issue