mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-27 17:07:43 +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;
|
package com.simplemobiletools.calendar;
|
||||||
|
|
||||||
public class Constants {
|
public class Constants {
|
||||||
public static final String DATE = "date";
|
|
||||||
public static final float LOW_ALPHA = .2f;
|
public static final float LOW_ALPHA = .2f;
|
||||||
public static final float HIGH_ALPHA = .9f;
|
public static final float HIGH_ALPHA = .9f;
|
||||||
|
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
package com.simplemobiletools.calendar;
|
package com.simplemobiletools.calendar;
|
||||||
|
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.DatePicker;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
@ -19,7 +23,7 @@ import butterknife.BindDimen;
|
|||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
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.left_arrow) ImageView leftArrow;
|
||||||
@Bind(R.id.right_arrow) ImageView rightArrow;
|
@Bind(R.id.right_arrow) ImageView rightArrow;
|
||||||
@Bind(R.id.table_month) TextView monthTV;
|
@Bind(R.id.table_month) TextView monthTV;
|
||||||
@ -93,16 +97,30 @@ public class MainActivity extends AppCompatActivity implements MyDatePickerDialo
|
|||||||
|
|
||||||
@OnClick(R.id.table_month)
|
@OnClick(R.id.table_month)
|
||||||
public void pickMonth() {
|
public void pickMonth() {
|
||||||
final MyDatePickerDialog dialog = new MyDatePickerDialog();
|
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this, R.style.MyAlertDialog);
|
||||||
final Bundle bundle = new Bundle();
|
final View view = getLayoutInflater().inflate(R.layout.date_picker, null);
|
||||||
bundle.putString(Constants.DATE, calendar.getTargetDate().toString());
|
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);
|
||||||
dialog.setArguments(bundle);
|
hideDayPicker(datePicker);
|
||||||
dialog.show(getSupportFragmentManager(), "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
|
private void hideDayPicker(DatePicker datePicker) {
|
||||||
public void onDatePicked(DateTime dateTime) {
|
final LinearLayout ll = (LinearLayout) datePicker.getChildAt(0);
|
||||||
calendar.updateCalendar(dateTime);
|
final LinearLayout ll2 = (LinearLayout) ll.getChildAt(0);
|
||||||
|
ll2.getChildAt(0).setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<DatePicker
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/date_picker"
|
||||||
android:layout_height="match_parent"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:gravity="center_horizontal">
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
<DatePicker
|
android:calendarViewShown="false"
|
||||||
android:id="@+id/date_picker"
|
android:datePickerMode="spinner"/>
|
||||||
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>
|
<item name="android:background">@drawable/button</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="MyAlertDialog" parent="Base.Theme.AppCompat.Light.Dialog.Alert"/>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user