Dont use native calendar on samsung lollipop

pull/511/head^2
Alex Baker 9 years ago
parent cc346880c5
commit 3384c6b291

@ -138,7 +138,7 @@ dependencies {
compile ('org.scala-saddle:google-rfc-2445:20110304') { compile ('org.scala-saddle:google-rfc-2445:20110304') {
transitive = false transitive = false
} }
compile ('com.wdullaer:materialdatetimepicker:3.1.1') { compile ('com.wdullaer:materialdatetimepicker:3.1.3') {
exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'support-v4'
} }

@ -10,6 +10,7 @@ import org.tasks.dialogs.MyDatePickerDialog;
import org.tasks.dialogs.NativeDatePickerDialog; import org.tasks.dialogs.NativeDatePickerDialog;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Device;
import org.tasks.themes.ThemeAccent; import org.tasks.themes.ThemeAccent;
import org.tasks.themes.ThemeBase; import org.tasks.themes.ThemeBase;
import org.tasks.time.DateTime; import org.tasks.time.DateTime;
@ -17,6 +18,7 @@ import org.tasks.time.DateTime;
import javax.inject.Inject; import javax.inject.Inject;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow;
import static org.tasks.dialogs.NativeDatePickerDialog.newNativeDatePickerDialog; import static org.tasks.dialogs.NativeDatePickerDialog.newNativeDatePickerDialog;
import static org.tasks.time.DateTimeUtils.currentTimeMillis; import static org.tasks.time.DateTimeUtils.currentTimeMillis;
@ -28,6 +30,7 @@ public class DatePickerActivity extends InjectingAppCompatActivity implements Da
@Inject ThemeBase themeBase; @Inject ThemeBase themeBase;
@Inject ThemeAccent themeAccent; @Inject ThemeAccent themeAccent;
@Inject Device device;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -37,7 +40,7 @@ public class DatePickerActivity extends InjectingAppCompatActivity implements Da
DateTime initial = (timestamp > 0 ? new DateTime(timestamp) : new DateTime()).startOfDay(); DateTime initial = (timestamp > 0 ? new DateTime(timestamp) : new DateTime()).startOfDay();
FragmentManager fragmentManager = getFragmentManager(); FragmentManager fragmentManager = getFragmentManager();
if (atLeastLollipop()) { if (atLeastMarshmallow() || (atLeastLollipop() && !device.isBaneOfMyExistence())) {
if (fragmentManager.findFragmentByTag(FRAG_TAG_DATE_PICKER) == null) { if (fragmentManager.findFragmentByTag(FRAG_TAG_DATE_PICKER) == null) {
newNativeDatePickerDialog(initial) newNativeDatePickerDialog(initial)
.show(fragmentManager, FRAG_TAG_DATE_PICKER); .show(fragmentManager, FRAG_TAG_DATE_PICKER);
@ -47,6 +50,7 @@ public class DatePickerActivity extends InjectingAppCompatActivity implements Da
if (dialog == null) { if (dialog == null) {
dialog = new MyDatePickerDialog(); dialog = new MyDatePickerDialog();
dialog.initialize(null, initial.getYear(), initial.getMonthOfYear() - 1, initial.getDayOfMonth()); dialog.initialize(null, initial.getYear(), initial.getMonthOfYear() - 1, initial.getDayOfMonth());
dialog.setVersion(DatePickerDialog.Version.VERSION_2);
dialog.setThemeDark(themeBase.isDarkTheme(this)); dialog.setThemeDark(themeBase.isDarkTheme(this));
dialog.setAccentColor(themeAccent.getAccentColor()); dialog.setAccentColor(themeAccent.getAccentColor());
dialog.show(fragmentManager, FRAG_TAG_DATE_PICKER); dialog.show(fragmentManager, FRAG_TAG_DATE_PICKER);

@ -26,6 +26,10 @@ public class Device {
this.context = context; this.context = context;
} }
public boolean isBaneOfMyExistence() {
return Build.MANUFACTURER.equalsIgnoreCase("samsung");
}
public boolean hasCamera() { public boolean hasCamera() {
return context.getPackageManager().queryIntentActivities(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), 0).size() > 0; return context.getPackageManager().queryIntentActivities(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), 0).size() > 0;
} }

Loading…
Cancel
Save