implement the month picker
This commit is contained in:
parent
23652f8196
commit
b22a5f23f6
|
@ -5,9 +5,6 @@ import android.os.Bundle;
|
|||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.NumberPicker;
|
||||
|
||||
import com.simplemobiletools.calendar.Config;
|
||||
import com.simplemobiletools.calendar.Constants;
|
||||
|
@ -43,10 +40,7 @@ public class MainActivity extends SimpleActivity implements MonthFragment.Naviga
|
|||
ButterKnife.bind(this);
|
||||
|
||||
final String today = new DateTime().toString(Formatter.DAYCODE_PATTERN);
|
||||
final List<String> codes = getMonths(today);
|
||||
final MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), codes, this);
|
||||
mPager.setAdapter(adapter);
|
||||
mPager.setCurrentItem(codes.size() / 2);
|
||||
fillViewPager(today);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -83,6 +77,13 @@ public class MainActivity extends SimpleActivity implements MonthFragment.Naviga
|
|||
startActivity(intent);
|
||||
}
|
||||
|
||||
private void fillViewPager(String targetMonth) {
|
||||
final List<String> codes = getMonths(targetMonth);
|
||||
final MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), codes, this);
|
||||
mPager.setAdapter(adapter);
|
||||
mPager.setCurrentItem(codes.size() / 2);
|
||||
}
|
||||
|
||||
private List<String> getMonths(String code) {
|
||||
final List<String> months = new ArrayList<>(PREFILLED_MONTHS);
|
||||
final DateTime today = Formatter.getDateTimeFromCode(code);
|
||||
|
@ -93,49 +94,6 @@ public class MainActivity extends SimpleActivity implements MonthFragment.Naviga
|
|||
return months;
|
||||
}
|
||||
|
||||
/*@OnClick(R.id.top_left_arrow)
|
||||
public void leftArrowClicked() {
|
||||
mCalendar.getPrevMonth();
|
||||
}
|
||||
|
||||
@OnClick(R.id.top_right_arrow)
|
||||
public void rightArrowClicked() {
|
||||
mCalendar.getNextMonth();
|
||||
}
|
||||
|
||||
@OnClick(R.id.top_text)
|
||||
public void pickMonth() {
|
||||
final int theme = mConfig.getIsDarkTheme() ? R.style.MyAlertDialog_Dark : R.style.MyAlertDialog;
|
||||
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this, theme);
|
||||
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(mCalendar.getTargetDate().toString());
|
||||
datePicker.init(dateTime.getYear(), dateTime.getMonthOfYear() - 1, 1, null);
|
||||
|
||||
alertDialog.setView(view);
|
||||
alertDialog.setNegativeButton(R.string.cancel, null);
|
||||
alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
final int month = datePicker.getMonth() + 1;
|
||||
final int year = datePicker.getYear();
|
||||
mCalendar.updateCalendar(new DateTime().withMonthOfYear(month).withYear(year));
|
||||
}
|
||||
});
|
||||
|
||||
alertDialog.show();
|
||||
}*/
|
||||
|
||||
private void hideDayPicker(DatePicker datePicker) {
|
||||
final LinearLayout ll = (LinearLayout) datePicker.getChildAt(0);
|
||||
final LinearLayout ll2 = (LinearLayout) ll.getChildAt(0);
|
||||
final NumberPicker picker1 = (NumberPicker) ll2.getChildAt(0);
|
||||
final NumberPicker picker2 = (NumberPicker) ll2.getChildAt(1);
|
||||
final NumberPicker dayPicker = (picker1.getMaxValue() > picker2.getMaxValue()) ? picker1 : picker2;
|
||||
dayPicker.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goLeft() {
|
||||
mPager.setCurrentItem(mPager.getCurrentItem() - 1);
|
||||
|
@ -145,4 +103,9 @@ public class MainActivity extends SimpleActivity implements MonthFragment.Naviga
|
|||
public void goRight() {
|
||||
mPager.setCurrentItem(mPager.getCurrentItem() + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToDateTime(DateTime dateTime) {
|
||||
fillViewPager(Formatter.getDayCodeFromDateTime(dateTime));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.simplemobiletools.calendar.fragments;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
|
@ -7,10 +8,14 @@ import android.graphics.PorterDuff;
|
|||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.simplemobiletools.calendar.Calendar;
|
||||
|
@ -23,6 +28,8 @@ import com.simplemobiletools.calendar.Utils;
|
|||
import com.simplemobiletools.calendar.activities.DayActivity;
|
||||
import com.simplemobiletools.calendar.models.Day;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindDimen;
|
||||
|
@ -122,6 +129,40 @@ public class MonthFragment extends Fragment implements Calendar {
|
|||
mListener.goRight();
|
||||
}
|
||||
|
||||
@OnClick(R.id.top_text)
|
||||
public void pickMonth() {
|
||||
final int theme = mConfig.getIsDarkTheme() ? R.style.MyAlertDialog_Dark : R.style.MyAlertDialog;
|
||||
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext(), theme);
|
||||
final View view = getLayoutInflater(getArguments()).inflate(R.layout.date_picker, null);
|
||||
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);
|
||||
hideDayPicker(datePicker);
|
||||
|
||||
final DateTime dateTime = new DateTime(mCalendar.getTargetDate().toString());
|
||||
datePicker.init(dateTime.getYear(), dateTime.getMonthOfYear() - 1, 1, null);
|
||||
|
||||
alertDialog.setView(view);
|
||||
alertDialog.setNegativeButton(R.string.cancel, null);
|
||||
alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
final int month = datePicker.getMonth() + 1;
|
||||
final int year = datePicker.getYear();
|
||||
if (mListener != null)
|
||||
mListener.goToDateTime(new DateTime().withMonthOfYear(month).withYear(year));
|
||||
}
|
||||
});
|
||||
|
||||
alertDialog.show();
|
||||
}
|
||||
|
||||
private void hideDayPicker(DatePicker datePicker) {
|
||||
final LinearLayout ll = (LinearLayout) datePicker.getChildAt(0);
|
||||
final LinearLayout ll2 = (LinearLayout) ll.getChildAt(0);
|
||||
final NumberPicker picker1 = (NumberPicker) ll2.getChildAt(0);
|
||||
final NumberPicker picker2 = (NumberPicker) ll2.getChildAt(1);
|
||||
final NumberPicker dayPicker = (picker1.getMaxValue() > picker2.getMaxValue()) ? picker1 : picker2;
|
||||
dayPicker.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
private void setupLabels() {
|
||||
int letters[] = Utils.getLetterIDs();
|
||||
|
||||
|
@ -186,5 +227,7 @@ public class MonthFragment extends Fragment implements Calendar {
|
|||
void goLeft();
|
||||
|
||||
void goRight();
|
||||
|
||||
void goToDateTime(DateTime dateTime);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue