mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-27 08:57:40 +01:00
use an alertdialog instead of a fragment
This commit is contained in:
parent
bbd3d41a6b
commit
ce0dc48061
@ -1,7 +1,6 @@
|
||||
package com.simplemobiletools.calendar;
|
||||
|
||||
public class Constants {
|
||||
public static final String DATE = "date";
|
||||
public static final float LOW_ALPHA = .2f;
|
||||
public static final float HIGH_ALPHA = .9f;
|
||||
|
||||
|
@ -1,13 +1,17 @@
|
||||
package com.simplemobiletools.calendar;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.View;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
@ -19,7 +23,7 @@ import butterknife.BindDimen;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
||||
public class MainActivity extends AppCompatActivity implements MyDatePickerDialog.DatePickedListener, Calendar {
|
||||
public class MainActivity extends AppCompatActivity implements Calendar {
|
||||
@Bind(R.id.left_arrow) ImageView leftArrow;
|
||||
@Bind(R.id.right_arrow) ImageView rightArrow;
|
||||
@Bind(R.id.table_month) TextView monthTV;
|
||||
@ -93,16 +97,30 @@ public class MainActivity extends AppCompatActivity implements MyDatePickerDialo
|
||||
|
||||
@OnClick(R.id.table_month)
|
||||
public void pickMonth() {
|
||||
final MyDatePickerDialog dialog = new MyDatePickerDialog();
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putString(Constants.DATE, calendar.getTargetDate().toString());
|
||||
dialog.setArguments(bundle);
|
||||
dialog.show(getSupportFragmentManager(), "datepicker");
|
||||
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this, R.style.MyAlertDialog);
|
||||
final View view = getLayoutInflater().inflate(R.layout.date_picker, null);
|
||||
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);
|
||||
hideDayPicker(datePicker);
|
||||
|
||||
final DateTime dateTime = new DateTime(calendar.getTargetDate().toString());
|
||||
datePicker.init(dateTime.getYear(), dateTime.getMonthOfYear() - 1, 1, null);
|
||||
|
||||
alertDialog.setView(view);
|
||||
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
final int month = datePicker.getMonth() + 1;
|
||||
final int year = datePicker.getYear();
|
||||
calendar.updateCalendar(new DateTime().withMonthOfYear(month).withYear(year));
|
||||
}
|
||||
});
|
||||
|
||||
alertDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDatePicked(DateTime dateTime) {
|
||||
calendar.updateCalendar(dateTime);
|
||||
private void hideDayPicker(DatePicker datePicker) {
|
||||
final LinearLayout ll = (LinearLayout) datePicker.getChildAt(0);
|
||||
final LinearLayout ll2 = (LinearLayout) ll.getChildAt(0);
|
||||
ll2.getChildAt(0).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,52 +0,0 @@
|
||||
package com.simplemobiletools.calendar;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.view.View;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
public class MyDatePickerDialog extends DialogFragment {
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
final View view = getActivity().getLayoutInflater().inflate(R.layout.date_picker, null);
|
||||
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);
|
||||
hideDayPicker(datePicker);
|
||||
|
||||
final Bundle bundle = getArguments();
|
||||
if (bundle != null && bundle.containsKey(Constants.DATE)) {
|
||||
final DateTime dateTime = new DateTime(bundle.getString(Constants.DATE));
|
||||
datePicker.init(dateTime.getYear(), dateTime.getMonthOfYear() - 1, 1, null);
|
||||
}
|
||||
|
||||
builder.setView(view);
|
||||
view.findViewById(R.id.date_picker_ok).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
final DatePickedListener listener = (DatePickedListener) getActivity();
|
||||
final int month = datePicker.getMonth() + 1;
|
||||
final int year = datePicker.getYear();
|
||||
listener.onDatePicked(new DateTime().withMonthOfYear(month).withYear(year));
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
private void hideDayPicker(DatePicker datePicker) {
|
||||
final LinearLayout ll = (LinearLayout) datePicker.getChildAt(0);
|
||||
final LinearLayout ll2 = (LinearLayout) ll.getChildAt(0);
|
||||
ll2.getChildAt(0).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public interface DatePickedListener {
|
||||
void onDatePicked(DateTime dateTime);
|
||||
}
|
||||
}
|
@ -1,23 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_horizontal">
|
||||
|
||||
<DatePicker
|
||||
android:id="@+id/date_picker"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:calendarViewShown="false"
|
||||
android:datePickerMode="spinner"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/date_picker_ok"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignLeft="@id/date_picker"
|
||||
android:layout_alignRight="@id/date_picker"
|
||||
android:layout_below="@id/date_picker"
|
||||
android:text="OK"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
@ -28,4 +28,6 @@
|
||||
<item name="android:background">@drawable/button</item>
|
||||
</style>
|
||||
|
||||
<style name="MyAlertDialog" parent="Base.Theme.AppCompat.Light.Dialog.Alert"/>
|
||||
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user