Skip to content

Instantly share code, notes, and snippets.

@Lukmannudin
Last active July 25, 2020 14:03
Show Gist options
  • Select an option

  • Save Lukmannudin/59dbb399a652bde987b539a0590aa8e2 to your computer and use it in GitHub Desktop.

Select an option

Save Lukmannudin/59dbb399a652bde987b539a0590aa8e2 to your computer and use it in GitHub Desktop.
Source Code Aplikasi Sleepy Platform Android Sebelum Reengineering
package id.diamondsleep.model;
import com.google.gson.annotations.SerializedName;
import java.util.List;
/**
* Created by Bayu WPP on 5/6/2017.
*/
public class Artikel {
@SerializedName("id_article")
private int id_artikel;
@SerializedName("title")
private String judul;
@SerializedName("image_url")
private String gambar;
@SerializedName("content")
private String isi;
@SerializedName("source")
private String sumber;
@SerializedName("date")
private String tanggal;
@SerializedName("author")
private String pengirim;
public Artikel(String isi) {
this.isi = isi;
}
public int getId_artikel() {
return id_artikel;
}
public void setId_artikel(int id_artikel) {
this.id_artikel = id_artikel;
}
public String getJudul() {
return judul;
}
public void setJudul(String judul) {
this.judul = judul;
}
public String getGambar() {
return gambar;
}
public void setGambar(String gambar) {
this.gambar = gambar;
}
public String getIsi() {
return isi;
}
public void setIsi(String isi) {
this.isi = isi;
}
public String getSumber() {
return sumber;
}
public void setSumber(String sumber) {
this.sumber = sumber;
}
public String getTanggal() {
return tanggal;
}
public void setTanggal(String tanggal) {
this.tanggal = tanggal;
}
public String getPengirim() {
return pengirim;
}
public void setPengirim(String pengirim) {
this.pengirim = pengirim;
}
public class ArtikelList extends Base {
private List<Artikel> result;
public List<Artikel> getResult() {
return result;
}
public void setResult(List<Artikel> result) {
this.result = result;
}
}
}
package id.diamondsleep.view.fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import java.util.ArrayList;
import java.util.List;
import id.diamondsleep.R;
import id.diamondsleep.adapter.ArtikelAdapter;
import id.diamondsleep.data.remote.ApiService;
import id.diamondsleep.model.Artikel;
import id.diamondsleep.model.BaseRemote;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/**
* A simple {@link Fragment} subclass.
*/
public class ArtikelFragment extends Fragment {
private SwipeRefreshLayout swipeRefreshLayout;
private RecyclerView recyclerView;
private LinearLayout linLayoutError;
private ArtikelAdapter adapter;
private ApiService apiService;
private ArrayList<Artikel> mArtikel;
public ArtikelFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View itemView = inflater.inflate(R.layout.fragment_artikel, container, false);
mArtikel = new ArrayList<>();
apiService = ApiService.factory.create();
swipeRefreshLayout = itemView.findViewById(R.id.swipe_article);
recyclerView = itemView.findViewById(R.id.recyclerview_article);
linLayoutError = itemView.findViewById(R.id.article_linlayout_error);
adapter = new ArtikelAdapter(getActivity().getBaseContext(), mArtikel);
adapter.setLoadMoreListener(new ArtikelAdapter.OnLoadMoreListener() {
@Override
public void onLoadMore() {
recyclerView.post(new Runnable() {
@Override
public void run() {
if (mArtikel.size() > 7) {
int index = mArtikel.size();
loadMore(index);
}
}
});
}
});
recyclerView.setLayoutManager(new GridLayoutManager(getActivity().getBaseContext(), 2));
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setItemAnimator(new DefaultItemAnimator());
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
reloadPage();
}
});
swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary);
if (mArtikel.size() < 1) {
prepareData(0);
}
linLayoutError.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
reloadPage();
}
});
return itemView;
}
private void prepareData(int i) {
swipeRefreshLayout.setRefreshing(true);
Call<BaseRemote<List<Artikel>>> getArtikel = apiService.getArtikel(i);
getArtikel.enqueue(new Callback<BaseRemote<List<Artikel>>>() {
@Override
public void onResponse(Call<BaseRemote<List<Artikel>>> call, Response<BaseRemote<List<Artikel>>> response) {
swipeRefreshLayout.setRefreshing(false);
if (response.isSuccessful() && response.body().getStatus() == 200) {
linLayoutError.setVisibility(View.GONE);
mArtikel.clear();
mArtikel.addAll(response.body().getResult());
adapter.notifyDataSetChanged();
} else {
errorPage();
}
}
@Override
public void onFailure(Call<BaseRemote<List<Artikel>>> call, Throwable t) {
errorPage();
}
});
}
private void errorPage() {
linLayoutError.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
swipeRefreshLayout.setRefreshing(false);
}
private void reloadPage() {
linLayoutError.setVisibility(View.GONE);
prepareData(0);
recyclerView.setVisibility(View.VISIBLE);
adapter.setMoreDataAvailable(true);
}
private void loadMore(int index) {
mArtikel.add(new Artikel("loadArtikel"));
adapter.notifyItemInserted(mArtikel.size() - 1);
Call<BaseRemote<List<Artikel>>> call = apiService.getArtikel(index);
call.enqueue(new Callback<BaseRemote<List<Artikel>>>() {
@Override
public void onResponse(Call<BaseRemote<List<Artikel>>> call, Response<BaseRemote<List<Artikel>>> response) {
if (response.isSuccessful()) {
mArtikel.remove(mArtikel.size() - 1);
List<Artikel> result = response.body().getResult();
if (result.size() > 0) {
mArtikel.addAll(result);
} else {
adapter.setMoreDataAvailable(true);
}
adapter.notifyDataChanged();
} else {
Log.e("Artikel - ", "loadMore() Response Error " + response.code());
}
}
@Override
public void onFailure(Call<BaseRemote<List<Artikel>>> call, Throwable t) {
Log.e("Artikel - ", "loadMore() Response Error " + t.getMessage());
errorPage();
}
});
}
}
package id.diamondsleep.utilities;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import androidx.annotation.Nullable;
import com.spotify.sdk.android.player.Config;
import com.spotify.sdk.android.player.ConnectionStateCallback;
import com.spotify.sdk.android.player.Error;
import com.spotify.sdk.android.player.PlaybackState;
import com.spotify.sdk.android.player.Player;
import com.spotify.sdk.android.player.PlayerEvent;
import com.spotify.sdk.android.player.Spotify;
import com.spotify.sdk.android.player.SpotifyPlayer;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;
import id.diamondsleep.model.MusicTrack;
/**
* Created by Bayu WPP on 5/20/2017.
*/
public class BackgroundSoundService extends Service implements SpotifyPlayer.NotificationCallback, ConnectionStateCallback {
private static final String TAG = null;
private static String tokenSpotify;
private final Player.OperationCallback mOperationCallback = new Player.OperationCallback() {
@Override
public void onSuccess() {
logStatus("OK!");
}
@Override
public void onError(Error error) {
logStatus("ERROR:" + error);
}
};
MediaPlayer player;
int[] tracks = new int[3];
int currentTrack = 0;
ArrayList<MusicTrack> tracksMusic;
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
try {
//this function can change value of mInterval.
} finally {
// 100% guarantee that this always happens, even if
// your update method throws an exception
}
}
};
private PlaybackState mCurrentPlaybackState;
private String ACCESS_TOKEN = null;
private int durasiPutar;
private SpotifyPlayer mPlayer;
private boolean playSuffle;
private int noPlaylist;
private long durasiMusik;
private boolean isStillPlaying = true;
private Handler mHandler;
@Override
public void onCreate() {
super.onCreate();
// tracks[0] = R.raw.a_moment_fo_peace_meditation;
// player = MediaPlayer.create(this, tracks[currentTrack]);
// player.setLooping(true); // Set looping
// player.setVolume(100,100);
// player.setOnCompletionListener(this);
Log.e("SpotifyService", "Masuk ke service");
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 4, 0);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// player.start();
Bundle args = intent.getBundleExtra("BUNDLE");
tracksMusic = (ArrayList<MusicTrack>) args.getSerializable("tracksArrayList");
durasiPutar = intent.getIntExtra("durasiPutar", 0);
noPlaylist = intent.getIntExtra("noPlaylist", 0);
tokenSpotify = intent.getStringExtra("token");
playSuffle = intent.getBooleanExtra("suffel", false);
if (SessionManager.isCheckLightOn(getApplicationContext())) {
if (!ServiceTools.isServiceRunning(".utilities.LigthService", getApplicationContext())) {
Intent intentLightService = new Intent(getApplicationContext(), LigthService.class);
startService(intentLightService);
}
}
if (SessionManager.isCheckNoiseOn(getApplicationContext())) {
if (!ServiceTools.isServiceRunning(".utilities.SoundLevelService", getApplicationContext())) {
Intent intentSoundService = new Intent(getApplicationContext(), SoundLevelService.class);
startService(intentSoundService);
}
}
if (noPlaylist == 1) {
SessionManager.setPlayAlbum(getApplicationContext(), 1);
} else if (noPlaylist == 2) {
SessionManager.setPlayAlbum(getApplicationContext(), 2);
} else if (noPlaylist == 3) {
SessionManager.setPlayAlbum(getApplicationContext(), 3);
} else if (noPlaylist == 4) {
SessionManager.setPlayAlbum(getApplicationContext(), 4);
} else if (noPlaylist == 5) {
SessionManager.setPlayAlbum(getApplicationContext(), 5);
} else if (noPlaylist == 6) {
SessionManager.setPlayAlbum(getApplicationContext(), 6);
}
Config playerConfig = new Config(getApplicationContext(), tokenSpotify, ConstantValue.Api.CLIENT_ID_SPOTIFY);
Spotify.getPlayer(playerConfig, getApplicationContext(), new SpotifyPlayer.InitializationObserver() {
@Override
public void onInitialized(SpotifyPlayer spotifyPlayer) {
mPlayer = spotifyPlayer;
mPlayer.addConnectionStateCallback(BackgroundSoundService.this);
mPlayer.addNotificationCallback(BackgroundSoundService.this);
}
@Override
public void onError(Throwable throwable) {
Log.e("Spotify Activity", "Tidak bisa menginisialisasi pemutar musik" + throwable.getMessage());
}
});
// for (int i = 0; i < tracksMusic.size(); i++) {
// mPlayer.queue(mOperationCallback, tracksMusic.get(i).getUrlTrack());
// }
if (playSuffle) {
mPlayer.setShuffle(mOperationCallback, true);
}
if (tracksMusic != null) {
mPlayer.playUri(mOperationCallback, tracksMusic.get(currentTrack).getUrlTrack(), 0, 0);
mPlayer.addNotificationCallback(new Player.NotificationCallback() {
@Override
public void onPlaybackEvent(PlayerEvent playerEvent) {
if (playerEvent == PlayerEvent.kSpPlaybackNotifyTrackDelivered) {
logStatus("playUri - masuk ke play uri");
currentTrack++;
mPlayer.pause(mOperationCallback);
mPlayer.playUri(mOperationCallback, tracksMusic.get(currentTrack).getUrlTrack(), 0, 0);
durasiMusik = TimeUnit.MILLISECONDS.toSeconds(tracksMusic.get(currentTrack).getDurasiMilis());
logStatus("detikdurasi:" + durasiMusik);
}
}
@Override
public void onPlaybackError(Error error) {
logStatus("playBack" + error);
}
});
}
Timer timer;
//inisialisasi
// mHandler = new Handler();
// startRepeatingTask();
// durasiMusik = TimeUnit.MILLISECONDS.toSeconds(tracksMusic.get(currentTrack).getDurasiMilis());
// logStatus("detikdurasi:" + durasiMusik);
// mPlayer.playUri(mOperationCallback, tracksMusic.get(currentTrack).getUrlTrack(), 0, 0);
//timer musik
// timer = new Timer();
// timer.schedule(new TimerTask() {
// @Override
// public void run() {
// currentTrack = currentTrack + 1;
// if (mCurrentPlaybackState != null && mCurrentPlaybackState.isPlaying) {
// mPlayer.pause(mOperationCallback);
// } else {
// mPlayer.resume(mOperationCallback);
// }
// mPlayer.playUri(mOperationCallback, tracksMusic.get(currentTrack).getUrlTrack(), 0, 0);
// durasiMusik = TimeUnit.MILLISECONDS.toSeconds(tracksMusic.get(currentTrack).getDurasiMilis());
// logStatus("detikdurasi:" + durasiMusik);
// }
// }, durasiMusik * 6000);
//timermusik
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
isStillPlaying = false;
if (SessionManager.getPlayAlbum(getApplicationContext()) != 0) {
if (ServiceTools.isServiceRunning(".utilities.LigthService", getApplicationContext())) {
Intent intentLightService = new Intent(getApplicationContext(), LigthService.class);
stopService(intentLightService);
}
if (ServiceTools.isServiceRunning(".utilities.SoundLevelService", getApplicationContext())) {
Intent intentSoundService = new Intent(getApplicationContext(), SoundLevelService.class);
stopService(intentSoundService);
}
SessionManager.setPlayAlbum(getApplicationContext(), 0);
mPlayer.pause(mOperationCallback);
mPlayer.destroy();
if (SessionManager.isTurnOffInternetOn(getApplicationContext())) {
try {
InternetServices.setMobileDataEnabled(getApplicationContext(), false);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
InternetServices.setWifiEnabled(getApplicationContext(), false);
}
}
}
}, durasiPutar * 60000);
return START_NOT_STICKY; //START_STICKY FOR KEEP ALWAYS RUNNING in BACKGROUND
}
void startRepeatingTask() {
mStatusChecker.run();
}
void stopRepeatingTask() {
mHandler.removeCallbacks(mStatusChecker);
}
public void onStart(Intent intent, int startId) {
// TO DO
}
@Override
public void onDestroy() {
// player.stop();
// player.release();
mPlayer.pause(mOperationCallback);
mPlayer.destroy();
SessionManager.setPlayAlbum(getApplicationContext(), 0);
}
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
SessionManager.setPlayAlbum(getApplicationContext(), 0);
}
//TO KEEP SERVICE ALWAYS RUNNING IN KITKAT OR BELOW VERSION
// @Override
// public void onTaskRemoved(Intent rootIntent) {
// Intent restartService = new Intent(getApplicationContext(),this.getClass());
// restartService.setPackage(getPackageName());
// startService(restartService);
// super.onTaskRemoved(rootIntent);
// }
@Override
public void onLowMemory() {
}
@Override
public void onLoggedIn() {
}
@Override
public void onLoggedOut() {
}
@Override
public void onLoginFailed(Error error) {
}
@Override
public void onTemporaryError() {
}
@Override
public void onConnectionMessage(String s) {
}
@Override
public void onPlaybackEvent(PlayerEvent playerEvent) {
}
@Override
public void onPlaybackError(Error error) {
}
private void logStatus(String status) {
Log.e(ConstantValue.Tags.SPOTIFY_ACTIVITY, status);
}
}
//package id.diamondsleep.utilities;
//
//import android.app.Service;
//import android.content.Intent;
//import android.media.MediaPlayer;
//import android.os.IBinder;
//
//import java.io.IOException;
//
//import id.diamondsleep.R;
//
///**
// * Created by Bayu WPP on 5/20/2017.
// */
//
//public class BackgroundSoundService extends Service implements MediaPlayer.OnCompletionListener {
// private static final String TAG = null;
// MediaPlayer player;
// int[] tracks = new int[3];
// int currentTrack = 0;
//
// public IBinder onBind(Intent arg0) {
//
// return null;
// }
// @Override
// public void onCreate() {
// super.onCreate();
// tracks[0] = R.raw.a_moment_fo_peace_meditation;
// player = MediaPlayer.create(this, tracks[currentTrack]);
//// player.setLooping(true); // Set looping
// player.setVolume(100,100);
// player.setOnCompletionListener(this);
//
// }
// public int onStartCommand(Intent intent, int flags, int startId) {
// player.start();
//
// return 1;
// }
//
// public void onStart(Intent intent, int startId) {
// // TO DO
// }
// public IBinder onUnBind(Intent arg0) {
// // TO DO Auto-generated method
// return null;
// }
//
// public void onStop() {
//
// }
// public void onPause() {
//
// }
// @Override
// public void onDestroy() {
// player.stop();
// player.release();
// }
//
// @Override
// public void onLowMemory() {
//
// }
//
// @Override
// public void onCompletion(MediaPlayer mp) {
// mp.release();
// if (currentTrack < tracks.length) {
// currentTrack++;
// mp = MediaPlayer.create(getApplicationContext(), tracks[currentTrack]);
// mp.setOnCompletionListener(this);
// mp.start();
// }
// }
//}
package id.diamondsleep.view.activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.snackbar.Snackbar;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import id.diamondsleep.R;
import id.diamondsleep.data.remote.ApiService;
import id.diamondsleep.model.Base;
import id.diamondsleep.model.Tidur;
import id.diamondsleep.utilities.ConstantValue;
import id.diamondsleep.utilities.Penghitungan;
import id.diamondsleep.utilities.SessionManager;
import id.diamondsleep.view.fragment.Pertanyaan0Fragment;
import id.diamondsleep.view.fragment.Pertanyaan0bFragment;
import id.diamondsleep.view.fragment.Pertanyaan1Fragment;
import id.diamondsleep.view.fragment.Pertanyaan2Fragment;
import id.diamondsleep.view.fragment.Pertanyaan3Fragment;
import id.diamondsleep.view.fragment.Pertanyaan4Fragment;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class HitungKualitasTidurActivity extends AppCompatActivity implements Pertanyaan0Fragment.OnDataPassFromPertanyaan0a, Pertanyaan0bFragment.OnDataPassFromPertanyaan0b, Pertanyaan1Fragment.OnDataPassFromPertanyaan1, Pertanyaan2Fragment.OnDataPassFromPertanyaan2, Pertanyaan3Fragment.OnDataPassFromPertanyaan3, Pertanyaan4Fragment.OnDataPassFromPertanyaan4 {
int durasiTidur;
int lamaJamDiTempatTidur;
double efisiensiTidur;
int lamaDiTempatTidur;
int nilaiLanjutPenghitungan;
private Button buttonNext;
private Button buttonPrev;
private FragmentManager fm;
//#komponen1
private int nilaiJawaban9;
//#komponen2
private int nilaiLamaWaktuUntukTidur;
private int nilaiJawaban5a;
//#komponen3
private int nilaiDurasiTidur;
//#komponen4
//(total # of hours asleep) / (total # of hours in bed) x 100
//>85%=0, 75%-84%=!, 65%-74%=2, <65%=3
private int nilaiEfisiensiTidur;
//#komponen5
private int nilaiJawaban5b;
private int nilaiJawaban5c;
private int nilaiJawaban5d;
private int nilaiJawaban5e;
private int nilaiJawaban5f;
private int nilaiJawaban5g;
private int nilaiJawaban5h;
private int nilaiJawaban5i;
private int nilaiJawaban5j;
//#komponen6
private int nilaiJawaban6;
//#komponen7
private int nilaiJawaban7;
private int nilaiJawaban8;
private int nilaiKomponen1;
private int nilaiKomponen2;
private int nilaiKomponen3;
private int nilaiKomponen4;
private int nilaiKomponen5;
private int nilaiKomponen6;
private int nilaiKomponen7;
private boolean akhir = false;
private boolean dataTidurHariIni;
private ApiService apiService;
private ArrayList<Tidur> listTidur;
private View lineProgress;
private View sisaProgress;
private TextView textVProgress;
private ProgressDialog progressDialog;
public static String getDurasiWaktuMenit(String dateStart, String dateStop) {
// String dateStart = "11/03/14 09:29:58";
// String dateStop = "11/03/14 09:33:43";
SimpleDateFormat format = new SimpleDateFormat("HH:mm a");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (ParseException e) {
e.printStackTrace();
}
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000);
long jam = 0;
if (diffHours > 0) {
jam = diffHours * 60;
}
long menit = jam + diffMinutes;
return String.valueOf(menit);
}
private static String getRataRataTidur(List<Tidur> tidurList) {
int rata2 = 0;
String[] waktuTidurArray = new String[tidurList.size()];
int[] jamTidurArray = new int[tidurList.size()];
int[] menitTidurArray = new int[tidurList.size()];
int totalMenit = 0;
String waktuRataRata = "";
if (tidurList.size() > 0) {
for (int i = 0; i < tidurList.size(); i++) {
waktuTidurArray[i] = Penghitungan.getDateTimeFromLong(tidurList.get(i).getWaktu_tidur(), "hh:mm a");
jamTidurArray[i] = Integer.parseInt(waktuTidurArray[i].substring(0, 2));
jamTidurArray[i] = jamTidurArray[i] + 12;
menitTidurArray[i] = Integer.parseInt(waktuTidurArray[i].substring(3, 5));
Log.e("APMTidurArray", i + "= " + waktuTidurArray[i].substring(6, 8));
Log.e("jamTidurArray", i + "= " + jamTidurArray[i]);
Log.e("mntTidurArray", i + "= " + menitTidurArray[i]);
totalMenit = totalMenit + menitTidurArray[i] + (jamTidurArray[i] * 60);
}
rata2 = totalMenit / tidurList.size();
}
int hours = rata2 / 60; //since both are ints, you get an int
int minutes = rata2 % 60;
if (hours > 12) {
if (minutes < 10) {
if (hours < 10) {
waktuRataRata = "0" + (hours - 12) + ":" + "0" + minutes + " PM";
} else {
waktuRataRata = (hours - 12) + ":" + "0" + minutes + " PM";
}
} else {
if (hours < 10) {
waktuRataRata = "0" + (hours - 12) + ":" + minutes + " PM";
} else {
waktuRataRata = (hours - 12) + ":" + minutes + " PM";
}
}
} else {
if (minutes < 10) {
if (hours < 10) {
waktuRataRata = "0" + hours + ":" + "0" + minutes + " AM";
} else {
waktuRataRata = hours + ":" + "0" + minutes + " AM";
}
} else {
if (hours < 10) {
waktuRataRata = "0" + hours + ":" + minutes + " AM";
} else {
waktuRataRata = hours + ":" + minutes + " AM";
}
}
}
return waktuRataRata;
}
private static String getRataRataKeTempatTidur(List<Tidur> tidurList) {
int rata2 = 0;
String[] waktuTidurArray = new String[tidurList.size()];
int[] jamTidurArray = new int[tidurList.size()];
int[] menitTidurArray = new int[tidurList.size()];
int totalMenit = 0;
String waktuRataRata = "";
if (tidurList.size() > 0) {
for (int i = 0; i < tidurList.size(); i++) {
waktuTidurArray[i] = Penghitungan.getDateTimeFromLong(tidurList.get(i).getWaktu_ke_tempat_tidur(), "hh:mm a");
jamTidurArray[i] = Integer.parseInt(waktuTidurArray[i].substring(0, 2));
jamTidurArray[i] = jamTidurArray[i] + 12;
menitTidurArray[i] = Integer.parseInt(waktuTidurArray[i].substring(3, 5));
Log.e("APMTidurArray", i + "= " + waktuTidurArray[i].substring(6, 8));
Log.e("jamTidurArray", i + "= " + jamTidurArray[i]);
Log.e("mntTidurArray", i + "= " + menitTidurArray[i]);
totalMenit = totalMenit + menitTidurArray[i] + (jamTidurArray[i] * 60);
}
rata2 = totalMenit / tidurList.size();
}
int hours = rata2 / 60; //since both are ints, you get an int
int minutes = rata2 % 60;
if (hours > 12) {
if (minutes < 10) {
if (hours < 10) {
waktuRataRata = "0" + (hours - 12) + ":" + "0" + minutes + " PM";
} else {
waktuRataRata = (hours - 12) + ":" + "0" + minutes + " PM";
}
} else {
if (hours < 10) {
waktuRataRata = "0" + (hours - 12) + ":" + minutes + " PM";
} else {
waktuRataRata = (hours - 12) + ":" + minutes + " PM";
}
}
} else {
if (minutes < 10) {
if (hours < 10) {
waktuRataRata = "0" + hours + ":" + "0" + minutes + " AM";
} else {
waktuRataRata = hours + ":" + "0" + minutes + " AM";
}
} else {
if (hours < 10) {
waktuRataRata = "0" + hours + ":" + minutes + " AM";
} else {
waktuRataRata = hours + ":" + minutes + " AM";
}
}
}
return waktuRataRata;
}
private static String getRataRataBangunPagi(List<Tidur> tidurList) {
int rata2 = 0;
String[] waktuTidurArray = new String[tidurList.size()];
int[] jamTidurArray = new int[tidurList.size()];
int[] menitTidurArray = new int[tidurList.size()];
int totalMenit = 0;
String waktuRataRata = "";
if (tidurList.size() > 0) {
for (int i = 0; i < tidurList.size(); i++) {
waktuTidurArray[i] = Penghitungan.getDateTimeFromLong(tidurList.get(i).getWaktu_bangun_dari_tempat_tidur(), "hh:mm a");
jamTidurArray[i] = Integer.parseInt(waktuTidurArray[i].substring(0, 2));
jamTidurArray[i] = jamTidurArray[i] + 12;
menitTidurArray[i] = Integer.parseInt(waktuTidurArray[i].substring(3, 5));
Log.e("APMTidurArray", i + "= " + waktuTidurArray[i].substring(6, 8));
Log.e("jamTidurArray", i + "= " + jamTidurArray[i]);
Log.e("mntTidurArray", i + "= " + menitTidurArray[i]);
totalMenit = totalMenit + menitTidurArray[i] + (jamTidurArray[i] * 60);
}
rata2 = totalMenit / tidurList.size();
}
int hours = rata2 / 60; //since both are ints, you get an int
int minutes = rata2 % 60;
if (hours > 12) {
if (minutes < 10) {
if (hours < 10) {
waktuRataRata = "0" + (hours - 12) + ":" + "0" + minutes + " PM";
} else {
waktuRataRata = (hours - 12) + ":" + "0" + minutes + " PM";
}
} else {
if (hours < 10) {
waktuRataRata = "0" + (hours - 12) + ":" + minutes + " PM";
} else {
waktuRataRata = (hours - 12) + ":" + minutes + " PM";
}
}
} else {
if (minutes < 10) {
if (hours < 10) {
waktuRataRata = "0" + hours + ":" + "0" + minutes + " AM";
} else {
waktuRataRata = hours + ":" + "0" + minutes + " AM";
}
} else {
if (hours < 10) {
waktuRataRata = "0" + hours + ":" + minutes + " AM";
} else {
waktuRataRata = hours + ":" + minutes + " AM";
}
}
}
return waktuRataRata;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hitung_kualitas_tidur);
buttonNext = (Button) findViewById(R.id.button_selanjutnya_hitungkualitasactivity);
buttonPrev = (Button) findViewById(R.id.button_sebelumnya_hitungkualitasactivity);
lineProgress = (View) findViewById(R.id.hitungkualitasactivity_view_lineprogress);
sisaProgress = (View) findViewById(R.id.hitungkualitasactivity_view_linesisaprogress);
textVProgress = (TextView) findViewById(R.id.hitungkualitasactivity_textview_progres);
progressDialog = new ProgressDialog(this);
setupToolbar();
apiService = ApiService.factory.create();
listTidur = new ArrayList<>();
dataTidurHariIni = getIntent().getBooleanExtra("dataTidurHariIni", false);
fm = getSupportFragmentManager();
Log.e("KualitasTidur", "dataTidurHariIni: " + dataTidurHariIni);
if (dataTidurHariIni) {
Bundle args = getIntent().getBundleExtra("BUNDLE");
listTidur = (ArrayList<Tidur>) args.getSerializable("dataTidur");
// Call<Tidur.TidurList> getDataTidur = apiService.getDataTidur(SessionManager.getLoggedUser(HitungKualitasTidurActivity.this).getEmail());
// getDataTidur.enqueue(new Callback<Tidur.TidurList>() {
// @Override
// public void onResponse(Call<Tidur.TidurList> call, Response<Tidur.TidurList> response) {
// progressDialog.dismiss();
// if(response.isSuccessful()){
// if(response.body().getStatus() == 200) {
// listTidur.clear();
// listTidur.addAll(response.body().getResult());
// if(listTidur.size() >= 30){
// //hitung dari data tidur
// Log.e("HitungKualitasTidurFragment","dataTidur:"+listTidur.size());
// dataTidurHariIni = true;
// } else {
// dataTidurHariIni = false;
// }
// } else if(response.body().getStatus()==400){
// dataTidurHariIni = false;
// }
// }
// }
//
// @Override
// public void onFailure(Call<Tidur.TidurList> call, Throwable t) {
// dataTidurHariIni=false;
// }
// });
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan1Fragment(), "pertanyaan1").commit();
textVProgress.setText("1/4");
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.25f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.75f
);
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Fragment fragmentpertanyaan1 = getSupportFragmentManager().findFragmentByTag("pertanyaan1");
final Fragment fragmentpertanyaan2 = getSupportFragmentManager().findFragmentByTag("pertanyaan2");
final Fragment fragmentpertanyaan3 = getSupportFragmentManager().findFragmentByTag("pertanyaan3");
final Fragment fragmentpertanyaan4 = getSupportFragmentManager().findFragmentByTag("pertanyaan4");
if (fragmentpertanyaan1 != null && fragmentpertanyaan1.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan2Fragment(), "pertanyaan2").commit();
textVProgress.setText("2/4");
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.50f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.50f
);
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan2 != null && fragmentpertanyaan2.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan3Fragment(), "pertanyaan3").commit();
textVProgress.setText("3/4");
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.75f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.25f
);
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan3 != null && fragmentpertanyaan3.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan4Fragment(), "pertanyaan4").commit();
textVProgress.setText("4/4");
buttonNext.setText(getResources().getString(R.string.selesai));
akhir = true;
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
1.0f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.0f
);
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan4 != null && fragmentpertanyaan4.isVisible()) {
Toast.makeText(HitungKualitasTidurActivity.this, "Selesai Hitung Kualitas Tidur button", Toast.LENGTH_SHORT).show();
}
fm.beginTransaction().setCustomAnimations(R.anim.slide_enter_from_left, R.anim.slide_exit_to_right);
}
});
buttonPrev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Fragment fragmentpertanyaan1 = getSupportFragmentManager().findFragmentByTag("pertanyaan1");
final Fragment fragmentpertanyaan2 = getSupportFragmentManager().findFragmentByTag("pertanyaan2");
final Fragment fragmentpertanyaan3 = getSupportFragmentManager().findFragmentByTag("pertanyaan3");
final Fragment fragmentpertanyaan4 = getSupportFragmentManager().findFragmentByTag("pertanyaan4");
if (fragmentpertanyaan1 != null && fragmentpertanyaan1.isVisible()) {
dialogPeyakinan();
} else if (fragmentpertanyaan2 != null && fragmentpertanyaan2.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan1Fragment(), "pertanyaan1").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.25f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.75f
);
textVProgress.setText("1/4");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan3 != null && fragmentpertanyaan3.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan2Fragment(), "pertanyaan2").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.50f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.50f
);
textVProgress.setText("2/4");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan4 != null && fragmentpertanyaan4.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan3Fragment(), "pertanyaan3").commit();
buttonNext.setText(getResources().getString(R.string.selanjutnya));
akhir = false;
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
5,
0.75f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.25f
);
textVProgress.setText("3/4");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
}
}
});
} else {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan0Fragment(), "pertanyaan0a").commit();
textVProgress.setText("1/5");
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.2f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.8f
);
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Fragment fragmentpertanyaan0a = getSupportFragmentManager().findFragmentByTag("pertanyaan0a");
// final Fragment fragmentpertanyaan0b = getSupportFragmentManager().findFragmentByTag("pertanyaan0b");
final Fragment fragmentpertanyaan1 = getSupportFragmentManager().findFragmentByTag("pertanyaan1");
final Fragment fragmentpertanyaan2 = getSupportFragmentManager().findFragmentByTag("pertanyaan2");
final Fragment fragmentpertanyaan3 = getSupportFragmentManager().findFragmentByTag("pertanyaan3");
final Fragment fragmentpertanyaan4 = getSupportFragmentManager().findFragmentByTag("pertanyaan4");
if (fragmentpertanyaan0a != null && fragmentpertanyaan0a.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan1Fragment(), "pertanyaan1").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.4f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.6f
);
textVProgress.setText("2/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
}
// else if (fragmentpertanyaan0b != null && fragmentpertanyaan0b.isVisible()) {
// fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity,new Pertanyaan1Fragment(),"pertanyaan1").commit();
// LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
// LinearLayout.LayoutParams.MATCH_PARENT,5,
// 0.49998f
// );
// LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
// LinearLayout.LayoutParams.MATCH_PARENT,5,
// 0.50002f
// );
// textVProgress.setText("3/6");
// lineProgress.setLayoutParams(param2);
// sisaProgress.setLayoutParams(param);
// }
else if (fragmentpertanyaan1 != null && fragmentpertanyaan1.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan2Fragment(), "pertanyaan2").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.6f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.4f
);
textVProgress.setText("4/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan2 != null && fragmentpertanyaan2.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan3Fragment(), "pertanyaan3").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.8f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.2f
);
textVProgress.setText("5/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan3 != null && fragmentpertanyaan3.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan4Fragment(), "pertanyaan4").commit();
buttonNext.setText(getResources().getString(R.string.selesai));
akhir = true;
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
1.0f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.0f
);
textVProgress.setText("5/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan4 != null && fragmentpertanyaan4.isVisible()) {
Toast.makeText(HitungKualitasTidurActivity.this, "Selesai Hitung Kualitas Tidur button", Toast.LENGTH_SHORT).show();
}
fm.beginTransaction().setCustomAnimations(R.anim.slide_enter_from_left, R.anim.slide_exit_to_right);
}
});
buttonPrev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Fragment fragmentpertanyaan0a = getSupportFragmentManager().findFragmentByTag("pertanyaan0a");
// final Fragment fragmentpertanyaan0b = getSupportFragmentManager().findFragmentByTag("pertanyaan0b");
final Fragment fragmentpertanyaan1 = getSupportFragmentManager().findFragmentByTag("pertanyaan1");
final Fragment fragmentpertanyaan2 = getSupportFragmentManager().findFragmentByTag("pertanyaan2");
final Fragment fragmentpertanyaan3 = getSupportFragmentManager().findFragmentByTag("pertanyaan3");
final Fragment fragmentpertanyaan4 = getSupportFragmentManager().findFragmentByTag("pertanyaan4");
if (fragmentpertanyaan0a != null && fragmentpertanyaan0a.isVisible()) {
dialogPeyakinan();
}
// else if (fragmentpertanyaan0b != null && fragmentpertanyaan0b.isVisible()) {
// fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity,new Pertanyaan0Fragment(),"pertanyaan0a").commit();
// LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
// LinearLayout.LayoutParams.MATCH_PARENT,5,
// 0.16666f
// );
// LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
// LinearLayout.LayoutParams.MATCH_PARENT,5,
// 0.83334f
// );
// textVProgress.setText("1/6");
// lineProgress.setLayoutParams(param2);
// sisaProgress.setLayoutParams(param);
// }
else if (fragmentpertanyaan1 != null && fragmentpertanyaan1.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan0Fragment(), "pertanyaan0a" +
"").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.33332f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.66668f
);
textVProgress.setText("1/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan2 != null && fragmentpertanyaan2.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan1Fragment(), "pertanyaan1").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.49998f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.50002f
);
textVProgress.setText("2/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan3 != null && fragmentpertanyaan3.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan2Fragment(), "pertanyaan2").commit();
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.66664f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.33336f
);
textVProgress.setText("3/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
} else if (fragmentpertanyaan4 != null && fragmentpertanyaan4.isVisible()) {
fm.beginTransaction().replace(R.id.framelayout_pertanyaan_hitungkualitasactivity, new Pertanyaan3Fragment(), "pertanyaan3").commit();
buttonNext.setText(getResources().getString(R.string.selanjutnya));
akhir = false;
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.8333f
);
LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 5,
0.1667f
);
textVProgress.setText("4/5");
lineProgress.setLayoutParams(param2);
sisaProgress.setLayoutParams(param);
}
}
});
}
}
private void setupToolbar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(R.string.nav_item_hitungkualitastidur);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
dialogPeyakinan();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void dialogPeyakinan() {
new AlertDialog.Builder(HitungKualitasTidurActivity.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setMessage(R.string.pembatalan_hitung_kualitas_tidur)
.setPositiveButton(R.string.ya, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
destroySession();
finish();
}
})
.setNegativeButton(R.string.tidak, null)
.show();
}
@Override
protected void onDestroy() {
super.onDestroy();
//remove session
try {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onBackPressed() {
dialogPeyakinan();
}
@Override
public void OnDataPassFromPertanyaan1(String seberapaBerkualitas) {
if (seberapaBerkualitas != null) {
nilaiJawaban9 = Integer.parseInt(seberapaBerkualitas.replaceAll("\\D+", ""));
nilaiKomponen1 = nilaiJawaban9;
}
}
@Override
public void OnDataPassFromPertanyaan2(String tidakBisaTidur30Menit, String bangunTengahMalamPagi, String batukMengengkur, String bangunKeKamarMandi, String tidakBisaBernapas, String kepanasan, String kedinginan, String mimpiBuruk, String rasaSakit, String alasanlain) {
Log.e("HitungKualitasTidur", "Nilai dari Fragment2" + tidakBisaTidur30Menit);
if (tidakBisaTidur30Menit != null && bangunTengahMalamPagi != null && batukMengengkur != null && bangunKeKamarMandi != null && tidakBisaBernapas != null && kepanasan != null && kedinginan != null && mimpiBuruk != null && rasaSakit != null) {
nilaiJawaban5a = Integer.parseInt(tidakBisaTidur30Menit.replaceAll("\\D+", ""));
nilaiJawaban5b = Integer.parseInt(bangunTengahMalamPagi.replaceAll("\\D+", ""));
nilaiJawaban5c = Integer.parseInt(batukMengengkur.replaceAll("\\D+", ""));
nilaiJawaban5d = Integer.parseInt(bangunKeKamarMandi.replaceAll("\\D+", ""));
nilaiJawaban5e = Integer.parseInt(tidakBisaBernapas.replaceAll("\\D+", ""));
nilaiJawaban5f = Integer.parseInt(kepanasan.replaceAll("\\D+", ""));
nilaiJawaban5g = Integer.parseInt(kedinginan.replaceAll("\\D+", ""));
nilaiJawaban5h = Integer.parseInt(mimpiBuruk.replaceAll("\\D+", ""));
nilaiJawaban5i = Integer.parseInt(rasaSakit.replaceAll("\\D+", ""));
}
if (alasanlain != null) {
nilaiJawaban5j = Integer.parseInt(alasanlain.replaceAll("\\D+", ""));
} else {
nilaiJawaban5j = 0;
}
int totalNilai;
if (dataTidurHariIni) {
//cari nilai menit rata2 user untuk tidur (1 bulan data)
// String rata2 = getDurasiWaktuMenit(getRataRataKeTempatTidur(listTidur),getRataRataTidur(listTidur));
// int rata2menit = Integer.parseInt(rata2);
// if(rata2menit<=15){
// nilaiLamaWaktuUntukTidur = 0;
// } else if(rata2menit > 15 && rata2menit <= 30){
// nilaiLamaWaktuUntukTidur = 1;
// } else if(rata2menit > 30 && rata2menit <= 60){
// nilaiLamaWaktuUntukTidur = 2;
// } else {
// nilaiLamaWaktuUntukTidur = 3;
// }
String durasiLatensi = getDurasiWaktuMenit(Penghitungan.getDateTimeFromLong(listTidur.get(0).getWaktu_ke_tempat_tidur(), "HH:mm a"), Penghitungan.getDateTimeFromLong(listTidur.get(0).getWaktu_tidur(), "HH:mm a"));
int lamaLatensi = Integer.parseInt(durasiLatensi);
if (lamaLatensi <= 15) {
nilaiLamaWaktuUntukTidur = 0;
} else if (lamaLatensi > 15 && lamaLatensi <= 30) {
nilaiLamaWaktuUntukTidur = 1;
} else if (lamaLatensi > 30 && lamaLatensi <= 60) {
nilaiLamaWaktuUntukTidur = 2;
} else {
nilaiLamaWaktuUntukTidur = 3;
}
}
totalNilai = nilaiJawaban5a + nilaiLamaWaktuUntukTidur;
if (totalNilai == 0) {
nilaiKomponen2 = 0;
} else if (totalNilai > 0 && totalNilai <= 2) {
nilaiKomponen2 = 1;
} else if (totalNilai > 2 && totalNilai <= 4) {
nilaiKomponen2 = 2;
} else {
nilaiKomponen2 = 3;
}
int jumlahGangguan = nilaiJawaban5b + nilaiJawaban5c + nilaiJawaban5d + nilaiJawaban5e
+ nilaiJawaban5f + nilaiJawaban5g + nilaiJawaban5h + nilaiJawaban5i + nilaiJawaban5j;
if (jumlahGangguan == 0) {
nilaiKomponen5 = 0;
} else if (jumlahGangguan >= 1 && jumlahGangguan <= 9) {
nilaiKomponen5 = 1;
} else if (jumlahGangguan >= 10 && jumlahGangguan <= 18) {
nilaiKomponen5 = 2;
} else if (jumlahGangguan >= 19 && jumlahGangguan <= 27) {
nilaiKomponen5 = 3;
}
}
@Override
public void OnDataPassFromPertanyaan3(String seringMenggunakanObat) {
if (seringMenggunakanObat != null) {
nilaiJawaban6 = Integer.parseInt(seringMenggunakanObat.replaceAll("\\D+", ""));
nilaiKomponen6 = nilaiJawaban6;
} else {
nilaiKomponen6 = 0;
}
}
private void destroySession() {
SessionManager.setHitungSubjektifKualitas(HitungKualitasTidurActivity.this, 0);
SessionManager.setHitungTidakBisaTidurTigaPuluhMenit(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungBangunTengahMalam(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungMendengkur(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungBangunKeKamarMandi(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungNapasTidakNyaman(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungKepanasan(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungKedinginan(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungRasaSakit(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungMimpiBuruk(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungAlasanLainText(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungAlasanLainPilih(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungPenggunaanObat(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungDisfungsiBesarMasalah(HitungKualitasTidurActivity.this, null);
SessionManager.setHitungDisfungsiSeringBermasalah(HitungKualitasTidurActivity.this, null);
}
@Override
public void OnDataPassFromPertanyaan4(String seringBermasalah, String besarMasalah) {
if (!seringBermasalah.equalsIgnoreCase("") && !besarMasalah.equalsIgnoreCase("")) {
Log.e("HitungKualitasTidur", "disfungsi: " + seringBermasalah);
Log.e("HitungKualitasTidur", "disfungsi: " + besarMasalah);
nilaiJawaban7 = Integer.parseInt(seringBermasalah.replaceAll("\\D+", ""));
nilaiJawaban8 = Integer.parseInt(besarMasalah.replaceAll("\\D+", ""));
int jumlah = nilaiJawaban7 + nilaiJawaban8;
if (jumlah == 0) {
nilaiKomponen7 = 0;
} else if (jumlah >= 1 && jumlah <= 2) {
nilaiKomponen7 = 1;
} else if (jumlah >= 3 && jumlah <= 4) {
nilaiKomponen7 = 2;
} else if (jumlah >= 5 && jumlah <= 6) {
nilaiKomponen7 = 3;
}
}
if (dataTidurHariIni) {
//cariRata2DurasiTidur
long totalDurasi = 0;
long rataRata = 0;
for (int i = 0; i < listTidur.size(); i++) {
totalDurasi += Penghitungan.getTimeDuration(Penghitungan.getDateTimeFromLong(listTidur.get(i).getWaktu_tidur(), "yy/MM/dd HH:mm:ss"), Penghitungan.getDateTimeFromLong(listTidur.get(i).getWaktu_bangun(), "yy/MM/dd HH:mm:ss"));
}
rataRata = totalDurasi / listTidur.size();
durasiTidur = (int) (rataRata / (60 * 60 * 1000));
//tentukan nilai rataratadurasi tidur
if (durasiTidur > 7) {
nilaiDurasiTidur = 0;
} else if (durasiTidur <= 7 && durasiTidur > 5) {
nilaiDurasiTidur = 1;
} else if (durasiTidur <= 6 && durasiTidur > 4) {
nilaiDurasiTidur = 2;
} else {
nilaiDurasiTidur = 3;
}
nilaiKomponen3 = nilaiDurasiTidur;
long rataRataDiTempatTidur = 0;
long totalLamaDiTempatTidur = 0;
for (int i = 0; i < listTidur.size(); i++) {
totalLamaDiTempatTidur += Penghitungan.getTimeDuration(Penghitungan.getDateTimeFromLong(listTidur.get(i).getWaktu_ke_tempat_tidur(), "yy/MM/dd HH:mm:ss"), Penghitungan.getDateTimeFromLong(listTidur.get(i).getWaktu_bangun_dari_tempat_tidur(), "yy/MM/dd HH:mm:ss"));
}
rataRataDiTempatTidur = totalLamaDiTempatTidur / listTidur.size();
lamaDiTempatTidur = (int) (rataRataDiTempatTidur / (60 * 60 * 1000));
efisiensiTidur = (durasiTidur / lamaDiTempatTidur) * 100;
if (efisiensiTidur > 85) {
nilaiKomponen4 = 0;
} else if (efisiensiTidur >= 75 && efisiensiTidur <= 84) {
nilaiKomponen4 = 1;
} else if (efisiensiTidur >= 65 && efisiensiTidur <= 74) {
nilaiKomponen4 = 2;
} else if (efisiensiTidur < 65) {
nilaiKomponen4 = 3;
}
}
nilaiKomponen1 = nilaiJawaban9;
Log.e("HitungKualitasTidur", "nilaikomponen1:" + nilaiKomponen1);
progressDialog = ProgressDialog.show(HitungKualitasTidurActivity.this, "",
getResources().getString(R.string.loading), true, false);
Call<Base> postHasilHitungKualitasTidur = apiService.simpanHasilHitungKualitasTidur(
SessionManager.getLoggedUser(HitungKualitasTidurActivity.this).getEmail(),
nilaiKomponen1,
nilaiKomponen2,
nilaiKomponen3,
nilaiKomponen4,
nilaiKomponen5,
nilaiKomponen6,
nilaiKomponen7
);
postHasilHitungKualitasTidur.enqueue(new Callback<Base>() {
@Override
public void onResponse(Call<Base> call, Response<Base> response) {
progressDialog.dismiss();
if (response.isSuccessful()) {
if (response.body().getStatus() == 200) {
Intent intent = new Intent(HitungKualitasTidurActivity.this, HasilHitungActivity.class);
intent.putExtra("subjektif_kualitas_tidur", nilaiKomponen1);
intent.putExtra("latensi_tidur", nilaiKomponen2);
intent.putExtra("durasi_tidur", nilaiKomponen3);
intent.putExtra("efisiensi_kebiasaan_tidur", nilaiKomponen4);
intent.putExtra("gangguan_tidur", nilaiKomponen5);
intent.putExtra("penggunaan_obat", nilaiKomponen6);
intent.putExtra("disfungsi_siang_hari", nilaiKomponen7);
startActivity(intent);
destroySession();
finish();
} else if (response.body().getStatus() == 400) {
Toast.makeText(HitungKualitasTidurActivity.this, "Failed, try again!", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onFailure(Call<Base> call, Throwable t) {
progressDialog.dismiss();
Toast.makeText(HitungKualitasTidurActivity.this, getResources().getString(R.string.gagal_perlukoneksiinternet), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void OnDataPassFromPertanyaan0b(String waktuKeTempatTidur, String waktuBangunPagi) {
if (waktuKeTempatTidur != null && waktuBangunPagi != null) {
//jumlah jam di tempat tidur
String[] waktu1 = waktuKeTempatTidur.split(":");
int jamKeTempatTidur = Integer.parseInt(waktu1[0]);
int menitKeTempatTidur = Integer.parseInt(waktu1[1]);
String[] waktu2 = waktuBangunPagi.split(":");
int jamBangunPagi = Integer.parseInt(waktu2[0]);
int menitBangunPagi = Integer.parseInt(waktu2[1]);
String amPmKeTempatTidur = "AM";
String amPmBangun = "AM";
int durasiJamDitempatTidur;
int durasiMenitDitempatTidur;
if (jamKeTempatTidur > 12) {
durasiJamDitempatTidur = (24 - jamKeTempatTidur) + jamBangunPagi;
amPmKeTempatTidur = "PM";
jamKeTempatTidur = jamKeTempatTidur - 12;
} else {
durasiJamDitempatTidur = jamBangunPagi - jamKeTempatTidur;
}
durasiMenitDitempatTidur = menitKeTempatTidur + menitBangunPagi;
if (durasiMenitDitempatTidur > 60) {
durasiJamDitempatTidur = durasiJamDitempatTidur + 1;
}
if (jamBangunPagi > 12) {
amPmBangun = "PM";
jamBangunPagi = jamBangunPagi - 12;
}
String waktuAwal = jamKeTempatTidur + ":" + menitKeTempatTidur + " " + amPmKeTempatTidur;
String waktuAkhir = jamBangunPagi + ":" + menitBangunPagi + " " + amPmBangun;
String durasiMenitDiTempatTidur = getDurasiWaktuMenit(waktuAwal, waktuAkhir);
lamaJamDiTempatTidur = durasiJamDitempatTidur;
efisiensiTidur = (durasiTidur / lamaJamDiTempatTidur) * 100;
if (efisiensiTidur > 85) {
nilaiKomponen4 = 0;
} else if (efisiensiTidur >= 75 && efisiensiTidur <= 84) {
nilaiKomponen4 = 1;
} else if (efisiensiTidur >= 65 && efisiensiTidur <= 74) {
nilaiKomponen4 = 2;
} else {
nilaiKomponen4 = 3;
}
} else {
lamaJamDiTempatTidur = 0;
efisiensiTidur = 0;
}
}
@Override
public void OnDataPassFromPertanyaan0a(String waktukeTempatTidur, String waktutertidur, String waktubanguntidur, String waktubangunDariTempatTidur) {
if (!waktukeTempatTidur.equalsIgnoreCase("") && !waktutertidur.equalsIgnoreCase("") && !waktubanguntidur.equalsIgnoreCase("") && !waktubangunDariTempatTidur.equalsIgnoreCase("")) {
//jumlah jam di tempat tidur
//((city.getName() == null) ? "N/A" : city.getName());
String[] waktu1 = waktukeTempatTidur.split(":");
int jamKeTempatTidur = Integer.parseInt(waktu1[0]);
int menitKeTempatTidur = Integer.parseInt(waktu1[1]);
String[] waktu2 = waktutertidur.split(":");
int jamTertidur = Integer.parseInt(waktu2[0]);
int menitTertidur = Integer.parseInt(waktu2[1]);
String[] waktu3 = waktubanguntidur.split(":");
int jamBangunTidur = Integer.parseInt(waktu3[0]);
int menitBangunTidur = Integer.parseInt(waktu3[1]);
String[] waktu4 = waktubangunDariTempatTidur.split(":");
int jamBangunDariTempatTidur = Integer.parseInt(waktu4[0]);
int menitBangunDariTempatTidur = Integer.parseInt(waktu4[1]);
durasiTidur = 0;
int durasiJamTidur;
int durasiMenitTidur;
String amPmTidur = "AM";
String amPmBangunTidur = "AM";
int jamTertidur2;
int jamBangunTidur2 = jamBangunTidur;
if (jamTertidur > 12) {
durasiJamTidur = (24 - jamTertidur) + jamBangunTidur;
amPmTidur = "PM";
jamTertidur2 = jamTertidur - 12;
} else {
jamTertidur2 = jamTertidur;
durasiJamTidur = jamBangunTidur2 - jamTertidur2;
}
durasiMenitTidur = menitTertidur + menitBangunTidur;
if (durasiMenitTidur > 60) {
durasiJamTidur = durasiJamTidur + 1;
}
if (jamBangunTidur > 12) {
amPmBangunTidur = "PM";
jamBangunTidur2 = jamBangunTidur - 12;
}
durasiTidur = durasiJamTidur;
int durasiJamDitempatTidur;
int durasiMenitDitempatTidur;
String amPmKeTempatTidur = "AM";
String amPmBangunDariTempatTidur = "AM";
int jamKeTempatTidur2;
int jamBangunDariTempatTidur2 = jamBangunDariTempatTidur;
if (jamKeTempatTidur > 12) {
durasiJamDitempatTidur = (24 - jamKeTempatTidur) + jamBangunDariTempatTidur;
amPmKeTempatTidur = "PM";
jamKeTempatTidur2 = jamKeTempatTidur - 12;
} else {
jamKeTempatTidur2 = jamKeTempatTidur;
durasiJamDitempatTidur = jamBangunDariTempatTidur - jamKeTempatTidur2;
}
durasiMenitDitempatTidur = menitKeTempatTidur + menitBangunDariTempatTidur;
if (durasiMenitDitempatTidur > 60) {
durasiJamDitempatTidur = durasiJamDitempatTidur + 1;
}
if (jamBangunDariTempatTidur > 12) {
amPmBangunDariTempatTidur = "PM";
jamBangunDariTempatTidur2 = jamBangunDariTempatTidur - 12;
}
String waktuAwal = jamKeTempatTidur2 + ":" + menitKeTempatTidur + " " + amPmKeTempatTidur;
String waktuAkhir = jamBangunDariTempatTidur + ":" + menitBangunDariTempatTidur + " " + amPmBangunDariTempatTidur;
String durasiMenitDiTempatTidur = getDurasiWaktuMenit(waktuAwal, waktuAkhir);
//latensi Tidur
String waktuKeTempatTidur = jamKeTempatTidur2 + ":" + menitKeTempatTidur + " " + amPmKeTempatTidur;
String waktuTidur = jamTertidur2 + ":" + menitTertidur + " " + amPmTidur;
String waktuBangun = jamBangunTidur2 + ":" + menitBangunTidur + " " + amPmBangunTidur;
String waktuBangunDariTempatTidur = jamBangunDariTempatTidur2 + ":" + menitBangunDariTempatTidur + " " + amPmBangunDariTempatTidur;
String stringJamKeTempatTidur;
if (jamKeTempatTidur < 10) {
stringJamKeTempatTidur = "0" + jamKeTempatTidur;
} else {
stringJamKeTempatTidur = String.valueOf(jamKeTempatTidur);
}
String stringMenitKeTempatTidur;
if (menitKeTempatTidur < 10) {
stringMenitKeTempatTidur = "0" + menitKeTempatTidur;
} else {
stringMenitKeTempatTidur = String.valueOf(menitKeTempatTidur);
}
String stringJamTertidur;
if (jamKeTempatTidur < 10) {
stringJamTertidur = "0" + jamTertidur;
} else {
stringJamTertidur = String.valueOf(jamTertidur);
}
String stringMenitTertidur;
if (menitTertidur < 10) {
stringMenitTertidur = "0" + menitTertidur;
} else {
stringMenitTertidur = String.valueOf(menitTertidur);
}
String stringJamBangunTidur;
if (jamBangunTidur < 10) {
stringJamBangunTidur = "0" + jamBangunTidur;
} else {
stringJamBangunTidur = String.valueOf(jamBangunTidur);
}
String stringMenitBangunTidur;
if (menitBangunTidur < 10) {
stringMenitBangunTidur = "0" + menitBangunTidur;
} else {
stringMenitBangunTidur = String.valueOf(menitBangunTidur);
}
String stringJamBangunDariTempatTidur;
if (jamBangunDariTempatTidur < 10) {
stringJamBangunDariTempatTidur = "0" + jamBangunDariTempatTidur;
} else {
stringJamBangunDariTempatTidur = String.valueOf(jamBangunDariTempatTidur);
}
String stringMenitBangunDariTempatTidur;
if (menitBangunDariTempatTidur < 10) {
stringMenitBangunDariTempatTidur = "0" + menitBangunDariTempatTidur;
} else {
stringMenitBangunDariTempatTidur = String.valueOf(menitBangunDariTempatTidur);
}
String waktuKeTempatTidur2 = stringJamKeTempatTidur + ":" + stringMenitKeTempatTidur;
String waktuTidur2 = stringJamTertidur + ":" + stringMenitTertidur;
String waktuBangun2 = stringJamBangunTidur + ":" + stringMenitBangunTidur;
String waktuBangunDariTempatTidur2 = stringJamBangunDariTempatTidur + ":" + stringMenitBangunDariTempatTidur;
String keTempatTidurWaktu = ((jamKeTempatTidur < 11) ? Penghitungan.getTodayDate() + " " + waktuKeTempatTidur2 + " " + Penghitungan.getCurrentTimezoneOffset() : Penghitungan.getYesterdayDateString() + " " + waktuKeTempatTidur2 + " " + Penghitungan.getCurrentTimezoneOffset());
String tidurWaktu = ((jamTertidur < 11) ? Penghitungan.getTodayDate() + " " + waktuTidur2 + " " + Penghitungan.getCurrentTimezoneOffset() : Penghitungan.getYesterdayDateString() + " " + waktuTidur2 + " " + Penghitungan.getCurrentTimezoneOffset());
String bangunWaktu = ((jamBangunTidur < 11) ? Penghitungan.getTodayDate() + " " + waktuBangun2 + " " + Penghitungan.getCurrentTimezoneOffset() : Penghitungan.getYesterdayDateString() + " " + waktuBangun2 + " " + Penghitungan.getCurrentTimezoneOffset());
String bangunDariTempatTidurWaktu = ((jamBangunDariTempatTidur < 11) ? Penghitungan.getTodayDate() + " " + waktuBangunDariTempatTidur2 + " " + Penghitungan.getCurrentTimezoneOffset() : Penghitungan.getYesterdayDateString() + " " + waktuBangunDariTempatTidur2 + " " + Penghitungan.getCurrentTimezoneOffset());
Log.e("HitungKualitas", "waktuketempattidur2" + keTempatTidurWaktu);
Log.e("HitungKualitas", "waktutidur2" + tidurWaktu);
Log.e("HitungKualitas", "waktubangun" + bangunWaktu);
Log.e("HitungKualitas", "bangundaritempattidur" + bangunDariTempatTidurWaktu);
Log.e("HitungKualitas", "tahun:" + keTempatTidurWaktu.substring(0, 4));
Log.e("HitungKualitas", "bulan:" + keTempatTidurWaktu.substring(5, 7));
Log.e("HitungKualitas", "tanggal:" + keTempatTidurWaktu.substring(8, 10));
int tahunKeTempatTidur = Integer.parseInt(keTempatTidurWaktu.substring(0, 4));
int bulanKeTempatTidur = Integer.parseInt(keTempatTidurWaktu.substring(5, 7)) - 1;
int tglKeTempatTidur = Integer.parseInt(keTempatTidurWaktu.substring(8, 10));
Calendar calendar1 = Calendar.getInstance();
calendar1.set(tahunKeTempatTidur, bulanKeTempatTidur, tglKeTempatTidur,
jamKeTempatTidur, menitKeTempatTidur, 0);
final long timeInMillisecondskeTempatTidur = calendar1.getTimeInMillis();
Log.e("HitungKualitas", "ketempattidur in milli: " + timeInMillisecondskeTempatTidur);
Log.e("HitungKualitas", "tahun:" + tidurWaktu.substring(0, 4));
Log.e("HitungKualitas", "bulan:" + tidurWaktu.substring(5, 7));
Log.e("HitungKualitas", "tanggal:" + tidurWaktu.substring(8, 10));
int tahunTidur = Integer.parseInt(tidurWaktu.substring(0, 4));
int bulanTidur = Integer.parseInt(tidurWaktu.substring(5, 7)) - 1;
int tglTidur = Integer.parseInt(tidurWaktu.substring(8, 10));
Calendar calendar2 = Calendar.getInstance();
calendar2.set(tahunTidur, bulanTidur, tglTidur,
jamTertidur, menitTertidur, 0);
final long timeInMillisecondsTidur = calendar2.getTimeInMillis();
Log.e("HitungKualitas", "tidur in milli: " + timeInMillisecondsTidur);
Log.e("HitungKualitas", "tahun:" + bangunWaktu.substring(0, 4));
Log.e("HitungKualitas", "bulan:" + bangunWaktu.substring(5, 7));
Log.e("HitungKualitas", "tanggal:" + bangunWaktu.substring(8, 10));
int tahunBangun = Integer.parseInt(bangunWaktu.substring(0, 4));
int bulanBangun = Integer.parseInt(bangunWaktu.substring(5, 7)) - 1;
int tglBangun = Integer.parseInt(bangunWaktu.substring(8, 10));
Calendar calendar3 = Calendar.getInstance();
calendar3.set(tahunBangun, bulanBangun, tglBangun,
jamBangunTidur, menitBangunTidur, 0);
final long timeInMillisecondsBangunTidur = calendar3.getTimeInMillis();
Log.e("HitungKualitas", "banguntidur in milli: " + timeInMillisecondsBangunTidur);
Log.e("HitungKualitas", "tahun:" + bangunWaktu.substring(0, 4));
Log.e("HitungKualitas", "bulan:" + bangunWaktu.substring(5, 7));
Log.e("HitungKualitas", "tanggal:" + bangunWaktu.substring(8, 10));
int tahunBangunDariTempatTidur = Integer.parseInt(bangunWaktu.substring(0, 4));
int bulanBangunDariTempatTidur = Integer.parseInt(bangunWaktu.substring(5, 7)) - 1;
int tglBangunDariTempatTidur = Integer.parseInt(bangunWaktu.substring(8, 10));
Calendar calendar4 = Calendar.getInstance();
calendar4.set(tahunBangunDariTempatTidur, bulanBangunDariTempatTidur, tglBangunDariTempatTidur,
jamBangunDariTempatTidur, menitBangunDariTempatTidur, 0);
final long timeInMillisecondsBangunDariTempatTidur = calendar4.getTimeInMillis();
Log.e("HitungKualitas", "bangundaritempattidur in milli: " + timeInMillisecondsBangunDariTempatTidur);
progressDialog = ProgressDialog.show(HitungKualitasTidurActivity.this, "",
getResources().getString(R.string.loading), true, false);
Call<Base> simpanDataTidur = apiService.simpanDataTidurBaru(
SessionManager.getLoggedUser(HitungKualitasTidurActivity.this).getEmail(),
String.valueOf(timeInMillisecondskeTempatTidur),
String.valueOf(timeInMillisecondsTidur),
String.valueOf(timeInMillisecondsBangunTidur),
String.valueOf(timeInMillisecondsBangunDariTempatTidur),
Penghitungan.getDateTimeFromLong(timeInMillisecondsBangunDariTempatTidur, "yyyy-MM-dd"));
simpanDataTidur.enqueue(new Callback<Base>() {
@Override
public void onResponse(Call<Base> call, Response<Base> response) {
progressDialog.dismiss();
if (response.isSuccessful()) {
if (response.body().getStatus() == 200) {
Log.e(ConstantValue.Tags.DATATIDURHARIINI_FRAGMENT, "Berhasil simpan data tidur baru");
Snackbar.make(findViewById(android.R.id.content), getResources().getString(R.string.datatidurberhasildisinkronkan), Snackbar.LENGTH_SHORT).show();
} else if (response.body().getStatus() == 201) {
Log.e(ConstantValue.Tags.DATATIDURHARIINI_FRAGMENT, "Data tidur sudah Up To Date");
Snackbar.make(findViewById(android.R.id.content), getResources().getString(R.string.datatiduruptodate), Snackbar.LENGTH_SHORT).show();
}
}
}
@Override
public void onFailure(Call<Base> call, Throwable t) {
progressDialog.dismiss();
Log.e("HitungKualitas", "ErrorSaveSleepData: " + t.getMessage());
}
});
String durasiMenitLatensiTidur = getDurasiWaktuMenit(waktuKeTempatTidur, waktuTidur);
int lamaWaktuUntukTidur = 0;
try {
lamaWaktuUntukTidur = Integer.parseInt(durasiMenitLatensiTidur);
} catch (NumberFormatException e) {
Log.e("HitungKualitasTidur", durasiMenitLatensiTidur + " is not a number");
}
if (lamaWaktuUntukTidur != 0) {
if (lamaWaktuUntukTidur <= 15) {
nilaiLamaWaktuUntukTidur = 0;
} else if (lamaWaktuUntukTidur > 15 && lamaWaktuUntukTidur <= 30) {
nilaiLamaWaktuUntukTidur = 1;
} else if (lamaWaktuUntukTidur > 30 && lamaWaktuUntukTidur <= 60) {
nilaiLamaWaktuUntukTidur = 2;
} else {
nilaiLamaWaktuUntukTidur = 3;
}
} else {
nilaiLamaWaktuUntukTidur = 0;
}
lamaJamDiTempatTidur = durasiJamDitempatTidur;
efisiensiTidur = (durasiTidur / lamaJamDiTempatTidur) * 100;
if (efisiensiTidur > 85) {
nilaiKomponen4 = 0;
} else if (efisiensiTidur >= 75 && efisiensiTidur <= 84) {
nilaiKomponen4 = 1;
} else if (efisiensiTidur >= 65 && efisiensiTidur <= 74) {
nilaiKomponen4 = 2;
} else {
nilaiKomponen4 = 3;
}
if (durasiTidur != 0) {
if (durasiTidur > 7) {
nilaiDurasiTidur = 0;
} else if (durasiTidur <= 7 && durasiTidur > 5) {
nilaiDurasiTidur = 1;
} else if (durasiTidur <= 6 && durasiTidur > 4) {
nilaiDurasiTidur = 2;
} else {
nilaiDurasiTidur = 3;
}
} else {
nilaiDurasiTidur = 0;
}
} else {
lamaJamDiTempatTidur = 0;
efisiensiTidur = 0;
durasiTidur = 0;
}
}
}
package id.diamondsleep.model;
import java.util.List;
/**
* Created by Bayu WPP on 5/7/2017.
*/
public class KualitasTidurPsqi {
private int id_psqi;
private int subjektif_kualitas_tidur;
private int latensi_tidur;
private int durasi_tidur;
private int efisiensi_kebiasaan_tidur;
private int gangguan_tidur;
private int penggunaan_obat;
private int disfungsi_siang_hari;
private String tanggal;
public int getId_psqi() {
return id_psqi;
}
public void setId_psqi(int id_psqi) {
this.id_psqi = id_psqi;
}
public int getSubjektif_kualitas_tidur() {
return subjektif_kualitas_tidur;
}
public void setSubjektif_kualitas_tidur(int subjektif_kualitas_tidur) {
this.subjektif_kualitas_tidur = subjektif_kualitas_tidur;
}
public int getLatensi_tidur() {
return latensi_tidur;
}
public void setLatensi_tidur(int latensi_tidur) {
this.latensi_tidur = latensi_tidur;
}
public int getDurasi_tidur() {
return durasi_tidur;
}
public void setDurasi_tidur(int durasi_tidur) {
this.durasi_tidur = durasi_tidur;
}
public int getEfisiensi_kebiasaan_tidur() {
return efisiensi_kebiasaan_tidur;
}
public void setEfisiensi_kebiasaan_tidur(int efisiensi_kebiasaan_tidur) {
this.efisiensi_kebiasaan_tidur = efisiensi_kebiasaan_tidur;
}
public int getGangguan_tidur() {
return gangguan_tidur;
}
public void setGangguan_tidur(int gangguan_tidur) {
this.gangguan_tidur = gangguan_tidur;
}
public int getPenggunaan_obat() {
return penggunaan_obat;
}
public void setPenggunaan_obat(int penggunaan_obat) {
this.penggunaan_obat = penggunaan_obat;
}
public int getDisfungsi_siang_hari() {
return disfungsi_siang_hari;
}
public void setDisfungsi_siang_hari(int disfungsi_siang_hari) {
this.disfungsi_siang_hari = disfungsi_siang_hari;
}
public String getTanggal() {
return tanggal;
}
public void setTanggal(String tanggal) {
this.tanggal = tanggal;
}
public class HistoriList extends Base {
private List<KualitasTidurPsqi> result;
public List<KualitasTidurPsqi> getResult() {
return result;
}
public void setResult(List<KualitasTidurPsqi> result) {
this.result = result;
}
}
}
package id.diamondsleep.view.activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.OptionalPendingResult;
import com.google.android.gms.common.api.ResultCallback;
import id.diamondsleep.R;
import id.diamondsleep.data.remote.ApiService;
import id.diamondsleep.model.BaseRemote;
import id.diamondsleep.model.User;
import id.diamondsleep.utilities.ConstantValue;
import id.diamondsleep.utilities.SessionManager;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.OnConnectionFailedListener {
private SignInButton btnSignIn;
private GoogleApiClient mGoogleApiClient;
private ProgressDialog mProgressDialog;
private static final int RC_SIGN_IN = 007;
private ApiService apiService;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initView();
btnSignIn.setOnClickListener(this);
progressDialog = new ProgressDialog(this);
apiService = ApiService.factory.create();
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
// Customizing G+ button
btnSignIn.setSize(SignInButton.SIZE_STANDARD);
btnSignIn.setScopes(gso.getScopeArray());
}
private void initView() {
btnSignIn = findViewById(R.id.btn_sign_in_google);
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.btn_sign_in_google:
signIn();
break;
}
}
private void showProgressDialog() {
if (mProgressDialog == null) {
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage(getString(R.string.loading));
mProgressDialog.setIndeterminate(true);
}
mProgressDialog.show();
}
private void hideProgressDialog() {
if (mProgressDialog != null && mProgressDialog.isShowing()) {
mProgressDialog.hide();
}
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
@Override
public void onStart() {
super.onStart();
OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient);
if (opr.isDone()) {
// If the user's cached credentials are valid, the OptionalPendingResult will be "done"
// and the GoogleSignInResult will be available instantly.
Log.e(ConstantValue.Tags.LOGIN_ACTIVITY, "Got cached sign-in");
GoogleSignInResult result = opr.get();
handleSignInResult(result);
} else {
// If the user has not previously signed in on this device or the sign-in has expired,
// this asynchronous branch will attempt to sign in the user silently. Cross-device
// single sign-on will occur in this branch.
showProgressDialog();
opr.setResultCallback(new ResultCallback<GoogleSignInResult>() {
@Override
public void onResult(GoogleSignInResult googleSignInResult) {
hideProgressDialog();
handleSignInResult(googleSignInResult);
}
});
}
}
private void handleSignInResult(GoogleSignInResult result) {
Log.e(ConstantValue.Tags.LOGIN_ACTIVITY, "handleSignInResult:" + result.isSuccess());
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();
Log.e(ConstantValue.Tags.LOGIN_ACTIVITY, "display name: " + acct.getDisplayName());
final String personName = acct.getDisplayName();
String email = acct.getEmail();
Log.e(ConstantValue.Tags.LOGIN_ACTIVITY, "Name: " + personName + ", email: " + email);
pengecekanAkun(email, personName);
} else {
// Signed out, show unauthenticated UI.
// Toast.makeText(this, "Login Failed", Toast.LENGTH_SHORT).show();
}
}
private void pengecekanAkun(final String email, final String nama) {
progressDialog = ProgressDialog.show(LoginActivity.this, "",
"Login", true, false);
Call<BaseRemote<String>> doLogin = apiService.loginUser(email, nama);
// doLogin.enqueue(new Callback<User.UserList>() {
// @Override
// public void onResponse(Call<User.UserList> call, Response<User.UserList> response) {
// progressDialog.dismiss();
// if (response.isSuccessful()) {
// if (response.body().getStatus() == 201) {
// Toast.makeText(LoginActivity.this, getResources().getString(R.string.welcome) + " " + nama, Toast.LENGTH_SHORT).show();
// }
// if (response.body().getStatus() == 200 || response.body().getStatus() == 201) {
// if (SessionManager.login(LoginActivity.this, response.body().getResult().get(0))) {
// if (SessionManager.setLoggedUserProfile(LoginActivity.this, SessionManager.getLoggedUser(LoginActivity.this))) {
// Intent i = new Intent(LoginActivity.this, MainActivity.class);
// startActivity(i);
// finish();
// }
// }
// }
// } else {
// Log.e(ConstantValue.Tags.LOGIN_ACTIVITY, "haha" + response.body());
// Toast.makeText(LoginActivity.this, getResources().getString(R.string.proccess_failed), Toast.LENGTH_LONG).show();
// }
// }
//
// @Override
// public void onFailure(Call<User.UserList> call, Throwable t) {
// progressDialog.dismiss();
// Toast.makeText(LoginActivity.this, getResources().getString(R.string.masalahkoneksikeserver), Toast.LENGTH_LONG).show();
// }
// });
doLogin.enqueue(new Callback<BaseRemote<String>>() {
@Override
public void onResponse(Call<BaseRemote<String>> call, Response<BaseRemote<String>> response) {
progressDialog.dismiss();
if (response.isSuccessful()) {
User user = new User(email, nama);
if (SessionManager.login(LoginActivity.this, user)) {
if (SessionManager.setLoggedUserProfile(LoginActivity.this, SessionManager.getLoggedUser(LoginActivity.this))) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
startActivity(i);
finish();
}
}
} else {
Toast.makeText(LoginActivity.this, getResources().getString(R.string.proccess_failed), Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<BaseRemote<String>> call, Throwable t) {
}
});
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Log.e(ConstantValue.Tags.LOGIN_ACTIVITY, "Login onConnectionFailed:" + connectionResult);
}
}
package id.diamondsleep.view.activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.FragmentManager;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Status;
import com.google.android.material.navigation.NavigationView;
import com.google.firebase.messaging.FirebaseMessaging;
import com.samsung.android.sdk.healthdata.HealthConstants;
import com.samsung.android.sdk.healthdata.HealthPermissionManager;
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
import id.diamondsleep.R;
import id.diamondsleep.utilities.ConstantValue;
import id.diamondsleep.utilities.ServiceDataTidur;
import id.diamondsleep.utilities.ServiceNotifPersiapanTidur;
import id.diamondsleep.utilities.SessionManager;
import id.diamondsleep.view.fragment.HitungKualitasTidurFragment;
import id.diamondsleep.view.fragment.HomeFragment;
import id.diamondsleep.view.fragment.KeadaanLingkunganFragment;
import id.diamondsleep.view.fragment.RelaksasiFragment;
import id.diamondsleep.view.fragment.SettingsFragment;
import id.diamondsleep.view.fragment.TidurFragment;
import id.diamondsleep.view.fragment.TidurHariIniFragment;
public class MainActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener {
public static final String APP_TAG = "MainActivityHealthData";
private static MainActivity mInstance = null;
public LinearLayout linToolbar;
private GoogleApiClient mGoogleApiClient;
private DrawerLayout drawer;
private NavigationView navigationView;
private Toolbar toolbar;
private FragmentManager fm;
private boolean backToExitPressedOnce = false;
private LinearLayout linMain;
private Set<HealthPermissionManager.PermissionKey> mKeySet;
private PopupWindow mPopupWindow;
public static MainActivity getInstance() {
return mInstance;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInstance = this;
mKeySet = new HashSet<HealthPermissionManager.PermissionKey>();
mKeySet.add(new HealthPermissionManager.PermissionKey(HealthConstants.Sleep.HEALTH_DATA_TYPE, HealthPermissionManager.PermissionType.READ));
mKeySet.add(new HealthPermissionManager.PermissionKey(HealthConstants.StepCount.HEALTH_DATA_TYPE, HealthPermissionManager.PermissionType.READ));
if (!SessionManager.isLoggedIn(this)) {
Intent loginIntent = new Intent(this, LoginActivity.class);
startActivity(loginIntent);
finish();
return;
}
FirebaseMessaging.getInstance().subscribeToTopic("posting");
//Service data tidur
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
linMain = findViewById(R.id.linlayout_main);
Intent intent = new Intent(MainActivity.this, ServiceDataTidur.class);
PendingIntent pintent = PendingIntent.getService(MainActivity.this, 0, intent, 0);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 30 * 1000, pintent);
//Service data tidur
if (SessionManager.isHaveRataTidur(MainActivity.this)) {
Log.e("MainActivity", "rata2Tidur" + SessionManager.getRataRataTidur(MainActivity.this));
int jamTidur = Integer.parseInt(SessionManager.getRataRataTidur(MainActivity.this).substring(0, 2));
int menitTidur = Integer.parseInt(SessionManager.getRataRataTidur(MainActivity.this).substring(3, 5));
String amPM = SessionManager.getRataRataTidur(MainActivity.this).substring(6, 8);
Log.e("MainActivity", "rataTidur: " + jamTidur + " : " + menitTidur + " " + amPM);
//service persiapan tidur
AlarmManager alarmMgr;
PendingIntent alarmIntent;
alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intentService = new Intent(MainActivity.this, ServiceNotifPersiapanTidur.class);
alarmIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intentService, 0);
if (amPM.equalsIgnoreCase("PM")) {
jamTidur = (jamTidur + 12) - 1;
}
calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, jamTidur);
calendar.set(Calendar.MINUTE, menitTidur);
// With setInexactRepeating(), you have to use one of the AlarmManager interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
//service persiapan tidur
}
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
initView();
setSupportActionBar(toolbar);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.drawer_open, R.string.drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
getSupportActionBar().setDisplayShowHomeEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawer.openDrawer(GravityCompat.START);
}
});
//header
View headerDrawer;
if (SessionManager.isLoggedIn(MainActivity.this)) {
headerDrawer = LayoutInflater.from(this).inflate(R.layout.nav_header_after_login, null);
navigationView.inflateMenu(R.menu.menu_drawer_login);//set menu
TextView headerName;
TextView headerEmail;
headerName = headerDrawer.findViewById(R.id.header_nama_user);
headerEmail = headerDrawer.findViewById(R.id.header_email_user);
headerName.setText(SessionManager.getLoggedUser(MainActivity.this).getNama());
headerEmail.setText(SessionManager.getLoggedUser(MainActivity.this).getEmail());
} else {
headerDrawer = LayoutInflater.from(this).inflate(R.layout.nav_header_diamondsleep, null);
navigationView.inflateMenu(R.menu.menu_drawer_belumlogin);//set menu
}
navigationView.addHeaderView(headerDrawer);
fm = getSupportFragmentManager();
Bundle extras = getIntent().getExtras();
if (extras != null) {
int value = extras.getInt("valueIntent");
//The key argument here must match that used in the other activity
if (value == 1) {
//datatidur fragment
fm.beginTransaction().replace(R.id.container_body, new TidurHariIniFragment()).commit();
} else if (value == 2) {
//dari hasil hitung kualitas tidur update hitung kualitas tidur fragment
fm.beginTransaction().replace(R.id.container_body, new HitungKualitasTidurFragment()).commit();
} else {
//home fragment
fm.beginTransaction().replace(R.id.container_body, new HomeFragment()).commit();
}
} else {
//home fragment
fm.beginTransaction().replace(R.id.container_body, new HomeFragment()).commit();
}
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
// This method will trigger on item Click of navigation menu
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
final FragmentManager fragmentManager = getSupportFragmentManager();
//Memeriksa apakah item tersebut dalam keadaan dicek atau tidak,
if (menuItem.isChecked()) {
menuItem.setChecked(false);
} else {
menuItem.setChecked(true);
}
//Menutup drawer item klik
drawer.closeDrawers();
//Memeriksa untuk melihat item yang akan dilklik dan melalukan aksi
switch (menuItem.getItemId()) {
case R.id.nav_home:
linToolbar.setVisibility(View.VISIBLE);
fragmentManager.beginTransaction().replace(R.id.container_body, new HomeFragment()).commit();
return true;
case R.id.nav_relaxation:
linToolbar.setVisibility(View.VISIBLE);
fragmentManager.beginTransaction().replace(R.id.container_body, new RelaksasiFragment()).commit();
return true;
case R.id.nav_keadaan_lingkungan:
linToolbar.setVisibility(View.GONE);
fragmentManager.beginTransaction().replace(R.id.container_body, new KeadaanLingkunganFragment()).commit();
return true;
case R.id.nav_hitung_kualitastidur:
linToolbar.setVisibility(View.GONE);
fragmentManager.beginTransaction().replace(R.id.container_body, new HitungKualitasTidurFragment()).commit();
return true;
case R.id.nav_datatidur:
linToolbar.setVisibility(View.GONE);
fragmentManager.beginTransaction().replace(R.id.container_body, new TidurFragment()).commit();
return true;
case R.id.nav_setting:
linToolbar.setVisibility(View.GONE);
fragmentManager.beginTransaction().replace(R.id.container_body, new SettingsFragment()).commit();
return true;
case R.id.nav_about_app:
// Initialize a new instance of LayoutInflater service
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
// Inflate the custom layout/view
View customView = inflater.inflate(R.layout.layout_popup_aboutapp, null);
// Initialize a new instance of popup window
mPopupWindow = new PopupWindow(
customView,
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
// Set an elevation value for popup window
// Call requires API level 21
if (Build.VERSION.SDK_INT >= 21) {
mPopupWindow.setElevation(5.0f);
}
// Get a reference for the custom view close button
ImageButton closeButton = customView.findViewById(R.id.ib_close);
// Set a click listener for the popup window close button
closeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Dismiss the popup window
mPopupWindow.dismiss();
}
});
mPopupWindow.showAtLocation(linMain, Gravity.CENTER, 0, 0);
return true;
case R.id.nav_logout:
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
Intent login = new Intent(MainActivity.this, LoginActivity.class);
startActivity(login);
finish();
return;
}
});
return true;
default:
Toast.makeText(MainActivity.this, "Oops! Something wrong!", Toast.LENGTH_SHORT).show();
return true;
}
}
});
// Intent loginIntent = new Intent(this, LoginActivity.class);
// startActivity(loginIntent);
// finish();
}
private void initView() {
drawer = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.fragment_navigation_drawer);
toolbar = findViewById(R.id.toolbar);
toolbar.setTitleTextColor(Color.WHITE);
toolbar.setSubtitleTextColor(Color.WHITE);
linToolbar = findViewById(R.id.layout_toolbar_main);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
// be available.
Log.e(ConstantValue.Tags.MAIN_ACTIVITY, "Logout onConnectionFailed:" + connectionResult);
}
@Override
public void onBackPressed() {
if (drawer.isDrawerOpen(GravityCompat.START)) {
//drawer is open then
drawer.closeDrawer(GravityCompat.START);
} else {
// No backstack to pop, so calling super
if (backToExitPressedOnce) {
super.onBackPressed();
return;
}
this.backToExitPressedOnce = true;
Toast.makeText(this, getResources().getString(R.string.tekan_kembali_lagi_untuk_keluar), Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
backToExitPressedOnce = false;
}
}, 2000);
}
}
}
package id.diamondsleep.view.fragment;
import android.app.Activity;
import android.app.TimePickerDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TimePicker;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import java.util.Calendar;
import id.diamondsleep.R;
/**
* A simple {@link Fragment} subclass.
*/
public class Pertanyaan0bFragment extends Fragment implements View.OnClickListener {
EditText editTwaktuBangunTidur;
EditText editTbangunPagiDariTempatTidur;
Button buttonPenjelasan;
private View rootView;
private Context context;
String keTempatTidur = null;
int waktukeTempatTidur = 0;
String bangunPagi = null;
int waktuBangundariTempatTidur = 0;
OnDataPassFromPertanyaan0b dataPasser;
public Pertanyaan0bFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View parentView= inflater.inflate(R.layout.fragment_pertanyaan_0b, container, false);
rootView = parentView;
context = rootView.getContext();
initView(rootView);
buttonPenjelasan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.penjelasan_pertanyaan0b_waktuketempatidurdanbangunpagi)
.setPositiveButton(R.string.ok, null)
.show();
}
});
editTwaktuBangunTidur.setOnClickListener(this);
editTbangunPagiDariTempatTidur.setOnClickListener(this);
editTwaktuBangunTidur.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
keTempatTidur = editTwaktuBangunTidur.getText().toString().trim();
bangunPagi = editTbangunPagiDariTempatTidur.getText().toString().trim();
try {
waktukeTempatTidur = Integer.parseInt(keTempatTidur);
} catch (NumberFormatException e) {
Log.e("",keTempatTidur+" is not a number");
}
if(keTempatTidur.isEmpty() && waktukeTempatTidur==0 && bangunPagi.isEmpty() && waktuBangundariTempatTidur==0) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
});
editTbangunPagiDariTempatTidur.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
keTempatTidur = editTwaktuBangunTidur.getText().toString().trim();
bangunPagi = editTbangunPagiDariTempatTidur.getText().toString().trim();
try {
waktuBangundariTempatTidur = Integer.parseInt(bangunPagi);
} catch (NumberFormatException e) {
Log.e("",bangunPagi+" is not a number");
}
if(bangunPagi.isEmpty() && waktuBangundariTempatTidur==0 && keTempatTidur.isEmpty() && waktukeTempatTidur==0) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
});
if(editTbangunPagiDariTempatTidur.getText().toString().trim().isEmpty() || editTwaktuBangunTidur.getText().toString().trim().isEmpty()){
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
return parentView;
}
private void initView(View rootView) {
editTwaktuBangunTidur = (EditText) rootView.findViewById(R.id.pertanyaandatatidur_edittext_waktupergiketempattidur);
editTbangunPagiDariTempatTidur = (EditText) rootView.findViewById(R.id.pertanyaandatatidur_edittext_waktubangunpagi);
buttonPenjelasan = (Button) rootView.findViewById(R.id.button_lihatpenjelasan_pertanyaan0b);
}
@Override
public void onClick(View v) {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
switch (v.getId()){
case R.id.pertanyaandatatidur_edittext_waktupergiketempattidur:
mTimePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
editTwaktuBangunTidur.setText( selectedHour + ":" + selectedMinute);
}
}, hour, minute, true);//Yes 24 hour time
mTimePicker.setTitle(context.getString(R.string.pilihwaktuketempattidur));
mTimePicker.show();
break;
case R.id.pertanyaandatatidur_edittext_waktubangunpagi:
mTimePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
editTbangunPagiDariTempatTidur.setText( selectedHour + ":" + selectedMinute);
}
}, hour, minute, true);//Yes 24 hour time
mTimePicker.setTitle(context.getString(R.string.pilihwaktubangunpagi));
mTimePicker.show();
break;
}
}
public interface OnDataPassFromPertanyaan0b {
public void OnDataPassFromPertanyaan0b(String waktuKeTempatTidur, String waktuBangunPagi);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
dataPasser = (OnDataPassFromPertanyaan0b) a;
}
public void passData(String menitLamaUntukTidur, String jamDurasiTidur) {
dataPasser.OnDataPassFromPertanyaan0b(menitLamaUntukTidur,jamDurasiTidur);
}
@Override
public void onPause() {
super.onPause();
passData(keTempatTidur,bangunPagi);
}
}
package id.diamondsleep.view.fragment;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;
import java.util.Calendar;
import id.diamondsleep.R;
import id.diamondsleep.utilities.SessionManager;
import id.diamondsleep.view.activity.InputDataTidurBanyakActivity;
/**
* A simple {@link Fragment} subclass.
*/
public class Pertanyaan0Fragment extends Fragment implements View.OnClickListener {
String waktuKeTempatTidur = null;
int waktuKeTempatTidurInt = 0;
String waktuTertidur = null;
int waktuTertidurInt = 0;
String waktuBangunTidur = null;
int waktuBangunTidurInt = 0;
String waktuBangunDariTempatTidur = null;
int waktuBangunDariTempatTidurInt = 0;
OnDataPassFromPertanyaan0a dataPasser;
private EditText editTWaktuKeTempatTidur;
private EditText editTWaktuTertidur;
private EditText editTwaktuBangunTidur;
private EditText editTbangunPagiDariTempatTidur;
private TextView textVDataTidurBanyak;
private View rootView;
// boolean activityInputAktif = false;
// boolean activityHitungAktif = false;
private Context context;
public Pertanyaan0Fragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View parentView = inflater.inflate(R.layout.fragment_pertanyaan_0, container, false);
rootView = parentView;
context = rootView.getContext();
initView(rootView);
setHasOptionsMenu(true);
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
editTWaktuKeTempatTidur.setOnClickListener(this);
editTWaktuTertidur.setOnClickListener(this);
editTwaktuBangunTidur.setOnClickListener(this);
editTbangunPagiDariTempatTidur.setOnClickListener(this);
editTWaktuKeTempatTidur.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
waktuKeTempatTidur = editTWaktuKeTempatTidur.getText().toString().trim();
waktuTertidur = editTWaktuTertidur.getText().toString().trim();
waktuBangunTidur = editTwaktuBangunTidur.getText().toString().trim();
waktuBangunDariTempatTidur = editTbangunPagiDariTempatTidur.getText().toString().trim();
try {
waktuKeTempatTidurInt = Integer.parseInt(waktuKeTempatTidur);
} catch (NumberFormatException e) {
Log.e("", waktuKeTempatTidur + " is not a number");
}
if (waktuKeTempatTidur.isEmpty() && waktuKeTempatTidurInt == 0 &&
waktuTertidur.isEmpty() && waktuTertidurInt == 0 &&
waktuBangunTidur.isEmpty() && waktuBangunTidurInt == 0 &&
waktuBangunDariTempatTidur.isEmpty() && waktuBangunDariTempatTidurInt == 0) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
});
editTWaktuTertidur.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
waktuKeTempatTidur = editTWaktuKeTempatTidur.getText().toString().trim();
waktuTertidur = editTWaktuTertidur.getText().toString().trim();
waktuBangunTidur = editTwaktuBangunTidur.getText().toString().trim();
waktuBangunDariTempatTidur = editTbangunPagiDariTempatTidur.getText().toString().trim();
try {
waktuTertidurInt = Integer.parseInt(waktuKeTempatTidur);
} catch (NumberFormatException e) {
Log.e("", waktuKeTempatTidur + " is not a number");
}
if (waktuKeTempatTidur.isEmpty() && waktuKeTempatTidurInt == 0 &&
waktuKeTempatTidur.isEmpty() && waktuTertidurInt == 0 &&
waktuBangunTidur.isEmpty() && waktuBangunTidurInt == 0 &&
waktuBangunDariTempatTidur.isEmpty() && waktuBangunDariTempatTidurInt == 0) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
});
//==========================================================================================================
editTwaktuBangunTidur.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
waktuKeTempatTidur = editTWaktuKeTempatTidur.getText().toString().trim();
waktuTertidur = editTWaktuTertidur.getText().toString().trim();
waktuBangunTidur = editTwaktuBangunTidur.getText().toString().trim();
waktuBangunDariTempatTidur = editTbangunPagiDariTempatTidur.getText().toString().trim();
try {
waktuBangunTidurInt = Integer.parseInt(waktuBangunTidur);
} catch (NumberFormatException e) {
Log.e("", waktuBangunTidur + " is not a number");
}
if (waktuKeTempatTidur.isEmpty() && waktuKeTempatTidurInt == 0 &&
waktuKeTempatTidur.isEmpty() && waktuTertidurInt == 0 &&
waktuBangunTidur.isEmpty() && waktuBangunTidurInt == 0 &&
waktuBangunDariTempatTidur.isEmpty() && waktuBangunDariTempatTidurInt == 0) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
});
editTbangunPagiDariTempatTidur.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
waktuKeTempatTidur = editTWaktuKeTempatTidur.getText().toString().trim();
waktuTertidur = editTWaktuTertidur.getText().toString().trim();
waktuBangunTidur = editTwaktuBangunTidur.getText().toString().trim();
waktuBangunDariTempatTidur = editTbangunPagiDariTempatTidur.getText().toString().trim();
try {
waktuBangunDariTempatTidurInt = Integer.parseInt(waktuBangunDariTempatTidur);
} catch (NumberFormatException e) {
Log.e("", waktuBangunDariTempatTidur + " is not a number");
}
if (waktuKeTempatTidur.isEmpty() && waktuKeTempatTidurInt == 0 &&
waktuKeTempatTidur.isEmpty() && waktuTertidurInt == 0 &&
waktuBangunDariTempatTidur.isEmpty() && waktuBangunDariTempatTidurInt == 0 &&
waktuBangunTidur.isEmpty() && waktuBangunTidurInt == 0) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
});
if (editTWaktuKeTempatTidur.getText().toString().trim().isEmpty() ||
editTWaktuTertidur.getText().toString().trim().isEmpty() ||
editTwaktuBangunTidur.getText().toString().trim().isEmpty() ||
editTbangunPagiDariTempatTidur.getText().toString().trim().isEmpty()) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
textVDataTidurBanyak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, InputDataTidurBanyakActivity.class);
intent.putExtra("nilaiIntentSebelumnya", 2);
startActivity(intent);
}
});
// if(activityInputAktif){
// getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// passData(editTWaktuKeTempatTidur.getText().toString().trim(), editTWaktuTertidur.getText().toString().trim(),
// editTwaktuBangunTidur.getText().toString().trim(), editTbangunPagiDariTempatTidur.getText().toString().trim()
// );
// }
// });
// }
return parentView;
}
private void initView(View rootView) {
textVDataTidurBanyak = rootView.findViewById(R.id.pertanyaandatatidur_textview_jikadatatidurlebihdarisatu);
editTWaktuKeTempatTidur = rootView.findViewById(R.id.pertanyaandatatidur_edittext_waktuketempattidur);
editTWaktuTertidur = rootView.findViewById(R.id.pertanyaandatatidur_edittext_waktutidur);
editTwaktuBangunTidur = rootView.findViewById(R.id.pertanyaandatatidur_edittext_waktubangunpagi);
editTbangunPagiDariTempatTidur = rootView.findViewById(R.id.pertanyaandatatidur_edittext_waktupergiketempattidur);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_penjelasan, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_info:
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.penjelasan_pertanyaan0a_datatidur)
.setPositiveButton(R.string.ok, null)
.show();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
switch (v.getId()) {
case R.id.pertanyaandatatidur_edittext_waktuketempattidur:
mTimePicker = TimePickerDialog.newInstance(new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
editTWaktuKeTempatTidur.setText(hourOfDay + ":" + minute);
}
}, 22, 0, false);//Yes 24 hour time
mTimePicker.setTitle(context.getString(R.string.pilihwaktuketempattidur));
mTimePicker.show(getActivity().getFragmentManager(), "Timepickertimeketempattidur");
break;
case R.id.pertanyaandatatidur_edittext_waktutidur:
int jamTidur;
int menitTidur;
String amPM;
if (SessionManager.isHaveRataTidur(context)) {
//get rata2 tidur
jamTidur = Integer.parseInt(SessionManager.getRataRataTidur(context).substring(0, 2));
menitTidur = Integer.parseInt(SessionManager.getRataRataTidur(context).substring(3, 5));
amPM = SessionManager.getRataRataTidur(context).substring(6, 8);
if (amPM.equalsIgnoreCase("PM")) {
jamTidur = jamTidur + 12;
}
} else {
jamTidur = 22;
menitTidur = 0;
amPM = "PM";
}
mTimePicker = TimePickerDialog.newInstance(new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
editTWaktuTertidur.setText(hourOfDay + ":" + minute);
}
}, jamTidur, menitTidur, false);//Yes 24 hour time
mTimePicker.setTitle(context.getString(R.string.waktu_tidur));
mTimePicker.show(getActivity().getFragmentManager(), "Timepickertimetidur");
break;
case R.id.pertanyaandatatidur_edittext_waktubangunpagi:
mTimePicker = TimePickerDialog.newInstance(new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
editTwaktuBangunTidur.setText(hourOfDay + ":" + minute);
}
}, 4, 40, false);//Yes 24 hour time
mTimePicker.setTitle(context.getString(R.string.waktu_bangun_tidur));
mTimePicker.show(getActivity().getFragmentManager(), "Timepickertimebangun");
break;
case R.id.pertanyaandatatidur_edittext_waktupergiketempattidur:
mTimePicker = TimePickerDialog.newInstance(new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
editTbangunPagiDariTempatTidur.setText(hourOfDay + ":" + minute);
}
}, 5, 0, false);//Yes 24 hour time
mTimePicker.setTitle(context.getString(R.string.waktu_bangun_pagi_dari_tempattidur));
mTimePicker.show(getActivity().getFragmentManager(), "Timepickertimebangundaritempattidur");
break;
}
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
// if(a.toString().equalsIgnoreCase("InputDataTidurActivity")){
// activityInputAktif = true;
// } else {
// activityHitungAktif = true;
// }
dataPasser = (OnDataPassFromPertanyaan0a) a;
}
public void passData(String waktukeTempatTidur, String waktutertidur, String waktubanguntidur, String waktubangunDariTempatTidur) {
dataPasser.OnDataPassFromPertanyaan0a(waktukeTempatTidur, waktutertidur, waktubanguntidur, waktubangunDariTempatTidur);
}
@Override
public void onPause() {
super.onPause();
passData(editTWaktuKeTempatTidur.getText().toString().trim(), editTWaktuTertidur.getText().toString().trim(),
editTwaktuBangunTidur.getText().toString().trim(), editTbangunPagiDariTempatTidur.getText().toString().trim()
);
}
public interface OnDataPassFromPertanyaan0a {
void OnDataPassFromPertanyaan0a(String waktukeTempatTidur, String waktutertidur, String waktubanguntidur, String waktubangunDariTempatTidur);
}
}
package id.diamondsleep.view.fragment;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import id.diamondsleep.R;
import id.diamondsleep.utilities.SessionManager;
/**
* A simple {@link Fragment} subclass.
*/
public class Pertanyaan1Fragment extends Fragment {
private RadioGroup radioGroupJawabanKualitas;
private RadioButton radioButtonJawaban1;
private RadioButton radioButtonJawaban2;
private RadioButton radioButtonJawaban3;
private RadioButton radioButtonJawaban4;
private View rootView;
private Context context;
private String jawaban = null;
OnDataPassFromPertanyaan1 dataPasser;
public Pertanyaan1Fragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View parentView = inflater.inflate(R.layout.fragment_pertanyaan1, container, false);
rootView = parentView;
context = rootView.getContext();
setHasOptionsMenu(true);
initView(rootView);
if (SessionManager.isHitungSubjektifKualitas(context)) {
if (SessionManager.getHitungSubjektifKualitas(context) == 1) {
radioButtonJawaban1.setChecked(true);
jawaban = "0 Sangat baik";
} else if (SessionManager.getHitungSubjektifKualitas(context) == 2) {
radioButtonJawaban2.setChecked(true);
jawaban = "1 Cukup baik";
} else if (SessionManager.getHitungSubjektifKualitas(context) == 3) {
radioButtonJawaban3.setChecked(true);
jawaban = "2 Cukup buruk";
} else if (SessionManager.getHitungSubjektifKualitas(context) == 4) {
radioButtonJawaban4.setChecked(true);
jawaban = "3 Sangat buruk";
}
}
radioGroupJawabanKualitas.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.radiobutton_sangatbagus_pertanyaan1fragment) {
jawaban = "0 Sangat baik";
SessionManager.setHitungSubjektifKualitas(context, 1);
} else if (checkedId == R.id.radiobutton_cukupbagus_pertanyaan1fragment) {
jawaban = "1 Cukup baik";
SessionManager.setHitungSubjektifKualitas(context, 2);
} else if (checkedId == R.id.radiobutton_cukupburuk_pertanyaan1fragment) {
jawaban = "2 Cukup buruk";
SessionManager.setHitungSubjektifKualitas(context, 3);
} else if (checkedId == R.id.radiobutton_sangatburuk_pertanyaan1fragment) {
jawaban = "3 Sangat buruk";
SessionManager.setHitungSubjektifKualitas(context, 4);
}
if (radioButtonJawaban1.isChecked() || radioButtonJawaban2.isChecked() || radioButtonJawaban3.isChecked() || radioButtonJawaban4.isChecked()) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
}
}
});
if (radioButtonJawaban1.isChecked() || radioButtonJawaban2.isChecked() || radioButtonJawaban3.isChecked() || radioButtonJawaban4.isChecked()) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
}
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_penjelasan, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.action_info:
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.penjelasan_pertanyaan1_seberapaberkualitas)
.setPositiveButton(R.string.ok, null)
.show();
break;
}
return super.onOptionsItemSelected(item);
}
private void initView(View rootView) {
radioGroupJawabanKualitas = (RadioGroup) rootView.findViewById(R.id.radiogrup_jawabanseberapaberkualita_pertanyaan1fragment);
radioButtonJawaban1 = (RadioButton) rootView.findViewById(R.id.radiobutton_sangatbagus_pertanyaan1fragment);
radioButtonJawaban2 = (RadioButton) rootView.findViewById(R.id.radiobutton_cukupbagus_pertanyaan1fragment);
radioButtonJawaban3 = (RadioButton) rootView.findViewById(R.id.radiobutton_cukupburuk_pertanyaan1fragment);
radioButtonJawaban4 = (RadioButton) rootView.findViewById(R.id.radiobutton_sangatburuk_pertanyaan1fragment);
}
public interface OnDataPassFromPertanyaan1 {
public void OnDataPassFromPertanyaan1(String data);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
dataPasser = (OnDataPassFromPertanyaan1) a;
}
public void passData(String data) {
dataPasser.OnDataPassFromPertanyaan1(data);
}
@Override
public void onPause() {
super.onPause();
passData(jawaban);
}
}
package id.diamondsleep.view.fragment;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner;
import id.diamondsleep.R;
import id.diamondsleep.utilities.Penghitungan;
import id.diamondsleep.utilities.SessionManager;
import id.diamondsleep.view.activity.HitungKualitasTidurActivity;
/**
* A simple {@link Fragment} subclass.
*/
public class Pertanyaan2Fragment extends Fragment {
private View parentView;
private Context context;
private String gangguanLain;
private EditText editTextGangguanLain;
private MaterialBetterSpinner spinnerTidakBisaTidur30Menit;
private MaterialBetterSpinner spinnerBangunTengahMalamAtauDekatPagi;
private MaterialBetterSpinner spinnerBatukAtauMendengkurKeras;
private MaterialBetterSpinner spinnerBangunKeKamarMandi;
private MaterialBetterSpinner spinnerTidakBisaBernapasNyaman;
private MaterialBetterSpinner spinnerKepanasan;
private MaterialBetterSpinner spinnerKedinginan;
private MaterialBetterSpinner spinnerMimpiburuk;
private MaterialBetterSpinner spinnerRasasakit;
private MaterialBetterSpinner spinnerAlasanlain;
private String tidakBisaTidur30Menit;
private String bangunTengahMalamAtauDekatPagi;
private String batukAtauMendengkurKeras;
private String bangunKeKamarMandi;
private String tidakBisaBernapasNyaman;
private String kepanasan;
private String kedinginan;
private String mimpiburuk;
private String rasasakit;
private String alasanlain;
private int nilaiTidakBisaTidur30Menit;
private int nilaiBangunTengahMalamAtauDekatPagi;
private int nilaiBatukAtauMendengkurKeras;
private int nilaiBangunKeKamarMandi;
private int nilaiTidakBisaBernapasNyaman;
private int nilaiKepanasan;
private int nilaiKedinginan;
private int nilaiMimpiburuk;
private int nilaiRasasakit;
private int nilaiAlasanlain = 0;
OnDataPassFromPertanyaan2 dataPasser;
String[] SPINNERLIST = {"Tidak", "Ya dan merasa tidak masalah", "Ya dan bermasalah", "Ya dan sangat bermasalah"};
String[] SPINNERLISTYA = {"Ya dan merasa tidak masalah", "Ya dan bermasalah", "Ya dan sangat bermasalah"};
public Pertanyaan2Fragment() {
// Required empty public constructor
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_pertanyaan2, container, false);
parentView = rootView;
context = parentView.getContext();
initView(parentView);
setHasOptionsMenu(true);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context,android.R.layout.simple_dropdown_item_1line, SPINNERLIST);
ArrayAdapter<String> arrayAdapterYa = new ArrayAdapter<String>(context,android.R.layout.simple_dropdown_item_1line, SPINNERLISTYA);
// //inisialisasi
// spinnerTidakBisaTidur30Menit.setText("Tidak");
// spinnerBangunTengahMalamAtauDekatPagi.setText("Tidak");
// spinnerBatukAtauMendengkurKeras.setText("Tidak");
// spinnerBangunKeKamarMandi.setText("Tidak");
// spinnerTidakBisaBernapasNyaman.setText("Tidak");
// spinnerKepanasan.setText("Tidak");
// spinnerKedinginan.setText("Tidak");
// spinnerMimpiburuk.setText("Tidak");
// spinnerRasasakit.setText("Tidak");
// tidakBisaTidur30Menit = String.valueOf(0)+" "+spinnerTidakBisaTidur30Menit.getText().toString();
// bangunTengahMalamAtauDekatPagi = String.valueOf(0)+" "+spinnerBangunTengahMalamAtauDekatPagi.getText().toString();
// batukAtauMendengkurKeras = String.valueOf(0)+" "+spinnerBatukAtauMendengkurKeras.getText().toString();
// bangunKeKamarMandi = String.valueOf(0)+" "+spinnerBangunKeKamarMandi.getText().toString();
// tidakBisaBernapasNyaman = String.valueOf(0)+" "+spinnerTidakBisaBernapasNyaman.getText().toString();
// kepanasan = String.valueOf(0)+" "+spinnerKepanasan.getText().toString();
// kedinginan = String.valueOf(0)+" "+spinnerKedinginan.getText().toString();
// mimpiburuk = String.valueOf(0)+" "+spinnerMimpiburuk.getText().toString();
// rasasakit = String.valueOf(0)+" "+spinnerRasasakit.getText().toString();
//Session
if(SessionManager.isHitungTidakBisaTidurTigaPuluhMenit(context)){
spinnerTidakBisaTidur30Menit.setText(SessionManager.getHitungTidakBisaTidurTigaPuluhMenit(context));
if(SessionManager.getHitungTidakBisaTidurTigaPuluhMenit(context).equalsIgnoreCase("Tidak")){
nilaiTidakBisaTidur30Menit = 0;
} else if(SessionManager.getHitungTidakBisaTidurTigaPuluhMenit(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiTidakBisaTidur30Menit = 1;
} else if(SessionManager.getHitungTidakBisaTidurTigaPuluhMenit(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiTidakBisaTidur30Menit = 2;
} else if(SessionManager.getHitungTidakBisaTidurTigaPuluhMenit(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiTidakBisaTidur30Menit = 3;
}
tidakBisaTidur30Menit = String.valueOf(nilaiTidakBisaTidur30Menit)+" "+spinnerTidakBisaTidur30Menit.getText().toString();
}
if(SessionManager.isHitungBangunTengahMalam(context)){
spinnerBangunTengahMalamAtauDekatPagi.setText(SessionManager.getHitungBangunTengahMalam(context));
if(SessionManager.getHitungBangunTengahMalam(context).equalsIgnoreCase("Tidak")){
nilaiBangunTengahMalamAtauDekatPagi = 0;
} else if(SessionManager.getHitungBangunTengahMalam(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiBangunTengahMalamAtauDekatPagi = 1;
} else if(SessionManager.getHitungBangunTengahMalam(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiBangunTengahMalamAtauDekatPagi = 2;
} else if(SessionManager.getHitungBangunTengahMalam(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiBangunTengahMalamAtauDekatPagi = 3;
}
bangunTengahMalamAtauDekatPagi = String.valueOf(nilaiBangunTengahMalamAtauDekatPagi)+" "+spinnerBangunTengahMalamAtauDekatPagi.getText().toString();
}
if(SessionManager.isHitungMendengkur(context)){
spinnerBatukAtauMendengkurKeras.setText(SessionManager.getHitungMendengkur(context));
if(SessionManager.getHitungMendengkur(context).equalsIgnoreCase("Tidak")){
nilaiBatukAtauMendengkurKeras = 0;
} else if(SessionManager.getHitungMendengkur(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiBatukAtauMendengkurKeras = 1;
} else if(SessionManager.getHitungMendengkur(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiBatukAtauMendengkurKeras = 2;
} else if(SessionManager.getHitungMendengkur(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiBatukAtauMendengkurKeras = 3;
}
batukAtauMendengkurKeras = String.valueOf(nilaiBatukAtauMendengkurKeras)+" "+spinnerBatukAtauMendengkurKeras.getText().toString();
}
if(SessionManager.isHitungBangunKeKamarMandi(context)){
spinnerBangunKeKamarMandi.setText(SessionManager.getHitungBangunKeKamarMandi(context));
if(SessionManager.getHitungBangunKeKamarMandi(context).equalsIgnoreCase("Tidak")){
nilaiBangunKeKamarMandi = 0;
} else if(SessionManager.getHitungBangunKeKamarMandi(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiBangunKeKamarMandi = 1;
} else if(SessionManager.getHitungBangunKeKamarMandi(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiBangunKeKamarMandi = 2;
} else if(SessionManager.getHitungBangunKeKamarMandi(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiBangunKeKamarMandi = 3;
}
bangunKeKamarMandi = String.valueOf(nilaiBangunKeKamarMandi)+" "+spinnerBangunKeKamarMandi.getText().toString();
}
if(SessionManager.isHitungNapasTidakNyaman(context)){
spinnerTidakBisaBernapasNyaman.setText(SessionManager.getHitungNapasTidakNyaman(context));
if(SessionManager.getHitungNapasTidakNyaman(context).equalsIgnoreCase("Tidak")){
nilaiTidakBisaBernapasNyaman = 0;
} else if(SessionManager.getHitungNapasTidakNyaman(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiTidakBisaBernapasNyaman = 1;
} else if(SessionManager.getHitungNapasTidakNyaman(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiTidakBisaBernapasNyaman = 2;
} else if(SessionManager.getHitungNapasTidakNyaman(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiTidakBisaBernapasNyaman = 3;
}
tidakBisaBernapasNyaman = String.valueOf(nilaiTidakBisaBernapasNyaman)+" "+spinnerTidakBisaBernapasNyaman.getText().toString();
}
if(SessionManager.isHitungKepanasan(context)){
spinnerKepanasan.setText(SessionManager.getHitungKepanasan(context));
if(SessionManager.getHitungKepanasan(context).equalsIgnoreCase("Tidak")){
nilaiKepanasan = 0;
} else if(SessionManager.getHitungKepanasan(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiKepanasan = 1;
} else if(SessionManager.getHitungKepanasan(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiKepanasan = 2;
} else if(SessionManager.getHitungKepanasan(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiKepanasan = 3;
}
kepanasan = String.valueOf(nilaiKepanasan)+" "+spinnerKepanasan.getText().toString();
}
if(SessionManager.isHitungKedinginan(context)){
spinnerKedinginan.setText(SessionManager.getHitungKedinginan(context));
if(SessionManager.getHitungKedinginan(context).equalsIgnoreCase("Tidak")){
nilaiKedinginan = 0;
} else if(SessionManager.getHitungKedinginan(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiKedinginan = 1;
} else if(SessionManager.getHitungKedinginan(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiKedinginan = 2;
} else if(SessionManager.getHitungKedinginan(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiKedinginan = 3;
}
kedinginan = String.valueOf(nilaiKedinginan)+" "+spinnerKedinginan.getText().toString();
}
if(SessionManager.isHitungMimpiBuruk(context)){
spinnerMimpiburuk.setText(SessionManager.getHitungMimpiBuruk(context));
if(SessionManager.getHitungMimpiBuruk(context).equalsIgnoreCase("Tidak")){
nilaiMimpiburuk = 0;
} else if(SessionManager.getHitungMimpiBuruk(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiMimpiburuk = 1;
} else if(SessionManager.getHitungMimpiBuruk(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiMimpiburuk = 2;
} else if(SessionManager.getHitungMimpiBuruk(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiMimpiburuk = 3;
}
mimpiburuk = String.valueOf(nilaiMimpiburuk)+" "+spinnerMimpiburuk.getText().toString();
}
if(SessionManager.isHitungRasaSakit(context)){
spinnerRasasakit.setText(SessionManager.getHitungRasaSakit(context));
if(SessionManager.getHitungRasaSakit(context).equalsIgnoreCase("Tidak")){
nilaiRasasakit = 0;
} else if(SessionManager.getHitungRasaSakit(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiRasasakit = 1;
} else if(SessionManager.getHitungRasaSakit(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiRasasakit = 2;
} else if(SessionManager.getHitungRasaSakit(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiRasasakit = 3;
}
rasasakit = String.valueOf(nilaiRasasakit)+" "+spinnerRasasakit.getText().toString();
}
if(SessionManager.isHitungAlasanLainText(context)){
editTextGangguanLain.setText(SessionManager.getHitungAlasanLainText(context));
}
if(SessionManager.isHitungAlasanLainPilih(context)){
spinnerAlasanlain.setText(SessionManager.getHitungAlasanLainPilih(context));
if(SessionManager.getHitungAlasanLainPilih(context).equalsIgnoreCase("Tidak")){
nilaiAlasanlain = 0;
} else if(SessionManager.getHitungAlasanLainPilih(context).equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiAlasanlain = 1;
} else if(SessionManager.getHitungAlasanLainPilih(context).equalsIgnoreCase("Ya dan bermasalah")){
nilaiAlasanlain = 2;
} else if(SessionManager.getHitungAlasanLainPilih(context).equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiAlasanlain = 3;
}
alasanlain = String.valueOf(nilaiAlasanlain)+" "+spinnerAlasanlain.getText().toString();
}
//Session
if(SessionManager.isHaveTidakBisaTidur30Menit(context)){
if(SessionManager.getTidakBisaTidur30Menit(context).equalsIgnoreCase(Penghitungan.getYesterdayDateString())){
spinnerTidakBisaTidur30Menit.setAdapter(arrayAdapterYa);
} else {
spinnerTidakBisaTidur30Menit.setText("Tidak");
spinnerTidakBisaTidur30Menit.setClickable(false);
spinnerTidakBisaTidur30Menit.setFocusable(false);
nilaiTidakBisaTidur30Menit = 0;
tidakBisaTidur30Menit = String.valueOf(nilaiTidakBisaTidur30Menit)+" "+spinnerTidakBisaTidur30Menit.getText().toString();
}
} else {
spinnerTidakBisaTidur30Menit.setAdapter(arrayAdapter);
}
if(SessionManager.isHaveBangunTengahMalam(context)){
if(SessionManager.getBangunTengahMalam(context).equalsIgnoreCase(Penghitungan.getTodayDate())) {
spinnerBangunTengahMalamAtauDekatPagi.setAdapter(arrayAdapterYa);
} else {
spinnerBangunTengahMalamAtauDekatPagi.setText("Tidak");
spinnerBangunTengahMalamAtauDekatPagi.setClickable(false);
spinnerBangunTengahMalamAtauDekatPagi.setFocusable(false);
nilaiBangunTengahMalamAtauDekatPagi = 0;
bangunTengahMalamAtauDekatPagi = String.valueOf(nilaiBangunTengahMalamAtauDekatPagi)+" "+spinnerBangunTengahMalamAtauDekatPagi.getText().toString();
}
} else {
spinnerBangunTengahMalamAtauDekatPagi.setAdapter(arrayAdapter);
}
spinnerBatukAtauMendengkurKeras.setAdapter(arrayAdapter);
spinnerBangunKeKamarMandi.setAdapter(arrayAdapter);
spinnerTidakBisaBernapasNyaman.setAdapter(arrayAdapter);
spinnerKepanasan.setAdapter(arrayAdapter);
spinnerKedinginan.setAdapter(arrayAdapter);
spinnerMimpiburuk.setAdapter(arrayAdapter);
spinnerRasasakit.setAdapter(arrayAdapter);
spinnerAlasanlain.setAdapter(arrayAdapter);
spinnerTidakBisaTidur30Menit.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerTidakBisaTidur30Menit.getText().toString().equalsIgnoreCase("Tidak")){
SessionManager.setHitungTidakBisaTidurTigaPuluhMenit(context,"Tidak");
nilaiTidakBisaTidur30Menit = 0;
} else if(spinnerTidakBisaTidur30Menit.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
SessionManager.setHitungTidakBisaTidurTigaPuluhMenit(context,"Ya dan merasa tidak masalah");
nilaiTidakBisaTidur30Menit = 1;
} else if(spinnerTidakBisaTidur30Menit.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
SessionManager.setHitungTidakBisaTidurTigaPuluhMenit(context,"Ya dan bermasalah");
nilaiTidakBisaTidur30Menit = 2;
} else if(spinnerTidakBisaTidur30Menit.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
SessionManager.setHitungTidakBisaTidurTigaPuluhMenit(context,"Ya dan sangat bermasalah");
nilaiTidakBisaTidur30Menit = 3;
}
tidakBisaTidur30Menit = String.valueOf(nilaiTidakBisaTidur30Menit)+" "+spinnerTidakBisaTidur30Menit.getText().toString();
updateButtonNext();
}
});
spinnerBangunTengahMalamAtauDekatPagi.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerBangunTengahMalamAtauDekatPagi.getText().toString().equalsIgnoreCase("Tidak")){
nilaiBangunTengahMalamAtauDekatPagi = 0;
SessionManager.setHitungBangunTengahMalam(context,"Tidak");
} else if(spinnerBangunTengahMalamAtauDekatPagi.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiBangunTengahMalamAtauDekatPagi = 1;
SessionManager.setHitungBangunTengahMalam(context,"Ya dan merasa tidak masalah");
} else if(spinnerBangunTengahMalamAtauDekatPagi.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiBangunTengahMalamAtauDekatPagi = 2;
SessionManager.setHitungBangunTengahMalam(context,"Ya dan bermasalah");
} else if(spinnerBangunTengahMalamAtauDekatPagi.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiBangunTengahMalamAtauDekatPagi = 3;
SessionManager.setHitungBangunTengahMalam(context,"Ya dan sangat bermasalah");
}
bangunTengahMalamAtauDekatPagi = String.valueOf(nilaiBangunTengahMalamAtauDekatPagi)+" "+spinnerBangunTengahMalamAtauDekatPagi.getText().toString();
updateButtonNext();
}
});
spinnerBatukAtauMendengkurKeras.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerBatukAtauMendengkurKeras.getText().toString().equalsIgnoreCase("Tidak")){
nilaiBatukAtauMendengkurKeras = 0;
SessionManager.setHitungMendengkur(context,"Tidak");
} else if(spinnerBatukAtauMendengkurKeras.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiBatukAtauMendengkurKeras = 1;
SessionManager.setHitungMendengkur(context,"Ya dan merasa tidak masalah");
} else if(spinnerBatukAtauMendengkurKeras.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiBatukAtauMendengkurKeras = 2;
SessionManager.setHitungMendengkur(context,"Ya dan bermasalah");
} else if(spinnerBatukAtauMendengkurKeras.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiBatukAtauMendengkurKeras = 3;
SessionManager.setHitungMendengkur(context,"Ya dan sangat bermasalah");
}
batukAtauMendengkurKeras = String.valueOf(nilaiBatukAtauMendengkurKeras)+" "+spinnerBatukAtauMendengkurKeras.getText().toString();
updateButtonNext();
}
});
spinnerBangunKeKamarMandi.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerBangunKeKamarMandi.getText().toString().equalsIgnoreCase("Tidak")){
nilaiBangunKeKamarMandi = 0;
SessionManager.setHitungBangunKeKamarMandi(context,"Tidak");
} else if(spinnerBangunKeKamarMandi.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiBangunKeKamarMandi = 1;
SessionManager.setHitungBangunKeKamarMandi(context,"Ya dan merasa tidak masalah");
} else if(spinnerBangunKeKamarMandi.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiBangunKeKamarMandi = 2;
SessionManager.setHitungBangunKeKamarMandi(context,"Ya dan bermasalah");
} else if(spinnerBangunKeKamarMandi.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiBangunKeKamarMandi = 3;
SessionManager.setHitungBangunKeKamarMandi(context,"Ya dan sangat bermasalah");
}
bangunKeKamarMandi = String.valueOf(nilaiBangunKeKamarMandi)+" "+spinnerBangunKeKamarMandi.getText().toString();
updateButtonNext();
}
});
spinnerTidakBisaBernapasNyaman.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerTidakBisaBernapasNyaman.getText().toString().equalsIgnoreCase("Tidak")){
nilaiTidakBisaBernapasNyaman = 0;
SessionManager.setHitungNapasTidakNyaman(context,"Tidak");
} else if(spinnerTidakBisaBernapasNyaman.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiTidakBisaBernapasNyaman = 1;
SessionManager.setHitungNapasTidakNyaman(context,"Ya dan merasa tidak masalah");
} else if(spinnerTidakBisaBernapasNyaman.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiTidakBisaBernapasNyaman = 2;
SessionManager.setHitungNapasTidakNyaman(context,"Ya dan bermasalah");
} else if(spinnerTidakBisaBernapasNyaman.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiTidakBisaBernapasNyaman = 3;
SessionManager.setHitungNapasTidakNyaman(context,"Ya dan sangat bermasalah");
}
tidakBisaBernapasNyaman = String.valueOf(nilaiTidakBisaBernapasNyaman)+" "+spinnerTidakBisaBernapasNyaman.getText().toString();
updateButtonNext();
}
});
spinnerKepanasan.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerKepanasan.getText().toString().equalsIgnoreCase("Tidak")){
nilaiKepanasan = 0;
SessionManager.setHitungKepanasan(context,"Tidak");
} else if(spinnerKepanasan.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiKepanasan = 1;
SessionManager.setHitungKepanasan(context,"Ya dan merasa tidak masalah");
} else if(spinnerKepanasan.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiKepanasan = 2;
SessionManager.setHitungKepanasan(context,"Ya dan bermasalah");
} else if(spinnerKepanasan.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiKepanasan = 3;
SessionManager.setHitungKepanasan(context,"Ya dan sangat bermasalah");
}
kepanasan = String.valueOf(nilaiKepanasan)+" "+spinnerKepanasan.getText().toString();
updateButtonNext();
}
});
spinnerKedinginan.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerKedinginan.getText().toString().equalsIgnoreCase("Tidak")){
nilaiKedinginan = 0;
SessionManager.setHitungKedinginan(context,"Tidak");
} else if(spinnerKedinginan.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiKedinginan = 1;
SessionManager.setHitungKedinginan(context,"Ya dan merasa tidak masalah");
} else if(spinnerKedinginan.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiKedinginan = 2;
SessionManager.setHitungKedinginan(context,"Ya dan bermasalah");
} else if(spinnerKedinginan.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiKedinginan = 3;
SessionManager.setHitungKedinginan(context,"Ya dan sangat bermasalah");
}
kedinginan = String.valueOf(nilaiKedinginan)+" "+spinnerKedinginan.getText().toString();
updateButtonNext();
}
});
spinnerMimpiburuk.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerMimpiburuk.getText().toString().equalsIgnoreCase("Tidak")){
nilaiMimpiburuk = 0;
SessionManager.setHitungMimpiBuruk(context,"Tidak");
} else if(spinnerMimpiburuk.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiMimpiburuk = 1;
SessionManager.setHitungMimpiBuruk(context,"Ya dan merasa tidak masalah");
} else if(spinnerMimpiburuk.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiMimpiburuk = 2;
SessionManager.setHitungMimpiBuruk(context,"Ya dan bermasalah");
} else if(spinnerMimpiburuk.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiMimpiburuk = 3;
SessionManager.setHitungMimpiBuruk(context,"Ya dan sangat bermasalah");
}
mimpiburuk = String.valueOf(nilaiMimpiburuk)+" "+spinnerMimpiburuk.getText().toString();
updateButtonNext();
}
});
spinnerRasasakit.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerRasasakit.getText().toString().equalsIgnoreCase("Tidak")){
nilaiRasasakit = 0;
SessionManager.setHitungRasaSakit(context,"Tidak");
} else if(spinnerRasasakit.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiRasasakit = 1;
SessionManager.setHitungRasaSakit(context,"Ya dan merasa tidak masalah");
} else if(spinnerRasasakit.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiRasasakit = 2;
SessionManager.setHitungRasaSakit(context,"Ya dan bermasalah");
} else if(spinnerRasasakit.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiRasasakit = 3;
SessionManager.setHitungRasaSakit(context,"Ya dan sangat bermasalah");
}
rasasakit = String.valueOf(nilaiRasasakit)+" "+spinnerRasasakit.getText().toString();
updateButtonNext();
}
});
editTextGangguanLain.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.length()>4){
spinnerAlasanlain.setVisibility(View.VISIBLE);
SessionManager.setHitungAlasanLainText(context,editTextGangguanLain.getText().toString());
} else {
spinnerAlasanlain.setVisibility(View.GONE);
alasanlain = nilaiAlasanlain + "-";
}
}
});
spinnerAlasanlain.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(spinnerAlasanlain.getText().toString().equalsIgnoreCase("Tidak")){
nilaiAlasanlain = 0;
SessionManager.setHitungAlasanLainPilih(context,"Tidak");
} else if(spinnerAlasanlain.getText().toString().equalsIgnoreCase("Ya dan merasa tidak masalah")){
nilaiAlasanlain = 1;
SessionManager.setHitungAlasanLainPilih(context,"Ya dan merasa tidak masalah");
} else if(spinnerAlasanlain.getText().toString().equalsIgnoreCase("Ya dan bermasalah")){
nilaiAlasanlain = 2;
SessionManager.setHitungAlasanLainPilih(context,"Ya dan bermasalah");
} else if(spinnerAlasanlain.getText().toString().equalsIgnoreCase("Ya dan sangat bermasalah")){
nilaiAlasanlain = 3;
SessionManager.setHitungAlasanLainPilih(context,"Ya dan sangat bermasalah");
}
alasanlain = String.valueOf(nilaiAlasanlain)+" "+spinnerAlasanlain.getText().toString();
updateButtonNext();
}
});
updateButtonNext();
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_penjelasan, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.action_info:
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.penjelasan_pertanyaan2_gangguantidur)
.setPositiveButton(R.string.ok, null)
.show();
break;
}
return super.onOptionsItemSelected(item);
}
private void updateButtonNext() {
if(tidakBisaTidur30Menit == null || bangunTengahMalamAtauDekatPagi==null || batukAtauMendengkurKeras==null ||
bangunKeKamarMandi ==null || tidakBisaBernapasNyaman==null || kepanasan==null || kedinginan==null ||
mimpiburuk==null || rasasakit==null){
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
private void initView(View parentView) {
spinnerTidakBisaTidur30Menit = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_tidakbisatidur30menit_pertanyaan2fragment);
spinnerBangunTengahMalamAtauDekatPagi = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_banguntengahmalamataumendekatipagi_pertanyaan2fragment);
spinnerBatukAtauMendengkurKeras = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_batukataumendengkurkeras_pertanyaan2fragment);
spinnerBangunKeKamarMandi = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_bangununtukkekamarmandi_pertanyaan2fragment);
spinnerTidakBisaBernapasNyaman = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_tidakbisabernapasdengannyaman_pertanyaan2fragment);
spinnerKepanasan = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_merasakepanasan_pertanyaan2fragment);
spinnerKedinginan = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_merasakedinginan_pertanyaan2fragment);
spinnerMimpiburuk = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_mengalamimimpiburuk_pertanyaan2fragment);
spinnerRasasakit = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_mengalamirasasakit_pertanyaan2fragment);
spinnerAlasanlain = (MaterialBetterSpinner) parentView.findViewById(R.id.spinner_alasanlainya_pertanyaan2fragment);
editTextGangguanLain = (EditText) parentView.findViewById(R.id.edttext_alasanlaingangguantidur_pertanyaan2);
}
public interface OnDataPassFromPertanyaan2 {
public void OnDataPassFromPertanyaan2(String tidakBisaTidur30Menit, String bangunTengahMalamPagi,
String batukMengengkur, String bangunKeKamarMandi, String tidakBisaBernapas,
String kepanasan, String kedinginan, String mimpiBuruk, String rasaSakit, String alasanlain);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
dataPasser = (OnDataPassFromPertanyaan2) a;
}
public void passData(String tidakBisaTidur30Menit, String bangunTengahMalamPagi,
String batukMengengkur, String bangunKeKamarMandi, String tidakBisaBernapas,
String kepanasan, String kedinginan, String mimpiBuruk, String rasaSakit, String alasanlain) {
dataPasser.OnDataPassFromPertanyaan2( tidakBisaTidur30Menit, bangunTengahMalamPagi,
batukMengengkur, bangunKeKamarMandi, tidakBisaBernapas,
kepanasan, kedinginan, mimpiBuruk, rasaSakit, alasanlain);
}
@Override
public void onPause() {
super.onPause();
passData(tidakBisaTidur30Menit,bangunTengahMalamAtauDekatPagi,batukAtauMendengkurKeras,
bangunKeKamarMandi,tidakBisaBernapasNyaman,kepanasan,kedinginan,mimpiburuk,rasasakit,alasanlain);
}
}
package id.diamondsleep.view.fragment;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner;
import id.diamondsleep.R;
import id.diamondsleep.utilities.SessionManager;
/**
* A simple {@link Fragment} subclass.
*/
public class Pertanyaan3Fragment extends Fragment {
OnDataPassFromPertanyaan3 dataPasser;
String[] SPINNERLIST = {"Tidak", "Ya dan hanya sesekali", "Ya dan cukup bergantung pada obat", "Ya dan sangat bergantung pada obat"};
private String seringMenggunakanObat = null;
private int nilaiMenggunakanObat = 0;
private View parentView;
private Context context;
private MaterialBetterSpinner spinnerSeringMenggunakanObat;
public Pertanyaan3Fragment() {
// Required empty public constructor
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_pertanyaan3, container, false);
parentView = rootView;
context = parentView.getContext();
initView(parentView);
setHasOptionsMenu(true);
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_dropdown_item_1line, SPINNERLIST);
spinnerSeringMenggunakanObat.setAdapter(arrayAdapter);
if (SessionManager.isHitungPenggunaanObat(context)) {
spinnerSeringMenggunakanObat.setText(SessionManager.getHitungPenggunaanObat(context));
if (SessionManager.getHitungPenggunaanObat(context).equalsIgnoreCase("Tidak")) {
nilaiMenggunakanObat = 0;
} else if (SessionManager.getHitungPenggunaanObat(context).equalsIgnoreCase("Ya dan hanya sesekali")) {
nilaiMenggunakanObat = 1;
} else if (SessionManager.getHitungPenggunaanObat(context).equalsIgnoreCase("Ya dan cukup bergantung pada obat")) {
nilaiMenggunakanObat = 2;
} else if (SessionManager.getHitungPenggunaanObat(context).equalsIgnoreCase("Ya dan sangat bergantung pada obat")) {
nilaiMenggunakanObat = 3;
}
seringMenggunakanObat = nilaiMenggunakanObat + " " + SessionManager.getHitungPenggunaanObat(context);
}
spinnerSeringMenggunakanObat.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (spinnerSeringMenggunakanObat.getText().toString().equalsIgnoreCase("Tidak")) {
nilaiMenggunakanObat = 0;
SessionManager.setHitungPenggunaanObat(context, "Tidak");
} else if (spinnerSeringMenggunakanObat.getText().toString().equalsIgnoreCase("Ya dan hanya sesekali")) {
nilaiMenggunakanObat = 1;
SessionManager.setHitungPenggunaanObat(context, "Ya dan hanya sesekali");
} else if (spinnerSeringMenggunakanObat.getText().toString().equalsIgnoreCase("Ya dan cukup bergantung pada obat")) {
nilaiMenggunakanObat = 2;
SessionManager.setHitungPenggunaanObat(context, "Ya dan cukup bergantung pada obat");
} else if (spinnerSeringMenggunakanObat.getText().toString().equalsIgnoreCase("Ya dan sangat bergantung pada obat")) {
nilaiMenggunakanObat = 3;
SessionManager.setHitungPenggunaanObat(context, "Ya dan sangat bergantung pada obat");
}
seringMenggunakanObat = nilaiMenggunakanObat + " " + spinnerSeringMenggunakanObat.getText().toString();
updateButtonNext();
}
});
updateButtonNext();
return parentView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_penjelasan, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_info:
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.penjelasan_pertanyaan3_obattidur)
.setPositiveButton(R.string.ok, null)
.show();
break;
}
return super.onOptionsItemSelected(item);
}
private void updateButtonNext() {
if (seringMenggunakanObat == null) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
private void initView(View parentView) {
spinnerSeringMenggunakanObat = parentView.findViewById(R.id.spinner_seringmenggunakanobat_pertanyaan3fragment);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
dataPasser = (OnDataPassFromPertanyaan3) a;
}
public void passData(String seringMenggunakanObat) {
dataPasser.OnDataPassFromPertanyaan3(seringMenggunakanObat);
}
@Override
public void onPause() {
super.onPause();
passData(seringMenggunakanObat);
}
public interface OnDataPassFromPertanyaan3 {
void OnDataPassFromPertanyaan3(String data);
}
}
package id.diamondsleep.view.fragment;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner;
import id.diamondsleep.R;
import id.diamondsleep.utilities.SessionManager;
/**
* A simple {@link Fragment} subclass.
*/
public class Pertanyaan4Fragment extends Fragment {
String[] SPINNERLISTSERING = {"Tidak", "Ya dan merasa tidak masalah", "Ya dan bermasalah", "Ya dan sangat bermasalah"};
String[] SPINNERLISTBESAR = {"Tidak masalah sama sekali", "Hanya masalah yang sangat kecil", "Agak bermasalah", "Masalah yang sangat besar"};
OnDataPassFromPertanyaan4 dataPasser;
private MaterialBetterSpinner spinnerSeberapaSeringBermasalah;
private MaterialBetterSpinner spinnerSeberapaBesarBermasalah;
private View parentView;
private Context context;
private String seringBermasalah;
private String besarMasalah;
private int nilaiSeringBermasalah;
private int nilaiBesarMasalah;
public Pertanyaan4Fragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_pertanyaan4, container, false);
parentView = rootView;
context = parentView.getContext();
initView(parentView);
setHasOptionsMenu(true);
ArrayAdapter<String> arrayAdapterSering = new ArrayAdapter<String>(context, android.R.layout.simple_dropdown_item_1line, SPINNERLISTSERING);
ArrayAdapter<String> arrayAdapterBesar = new ArrayAdapter<String>(context, android.R.layout.simple_dropdown_item_1line, SPINNERLISTBESAR);
spinnerSeberapaSeringBermasalah.setAdapter(arrayAdapterSering);
spinnerSeberapaBesarBermasalah.setAdapter(arrayAdapterBesar);
if (SessionManager.isHitungDisfungsiSeringBermasalah(context)) {
spinnerSeberapaSeringBermasalah.setText(SessionManager.getHitungDisfungsiSeringBermasalah(context));
if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Tidak")) {
nilaiSeringBermasalah = 0;
} else if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Ya dan merasa tidak masalah")) {
nilaiSeringBermasalah = 1;
} else if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Ya dan bermasalah")) {
nilaiSeringBermasalah = 2;
} else if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Ya dan sangat bermasalah")) {
nilaiSeringBermasalah = 3;
}
seringBermasalah = nilaiSeringBermasalah + " " + SessionManager.getHitungDisfungsiSeringBermasalah(context);
}
if (SessionManager.isHitungDisfungsiBesarMasalah(context)) {
spinnerSeberapaBesarBermasalah.setText(SessionManager.getHitungDisfungsiBesarMasalah(context));
if (SessionManager.getHitungDisfungsiBesarMasalah(context).equalsIgnoreCase("Tidak masalah sama sekali")) {
nilaiBesarMasalah = 0;
} else if (SessionManager.getHitungDisfungsiBesarMasalah(context).equalsIgnoreCase("Hanya masalah yang sangat kecil")) {
nilaiBesarMasalah = 1;
} else if (SessionManager.getHitungDisfungsiBesarMasalah(context).equalsIgnoreCase("Agak bermasalah")) {
nilaiBesarMasalah = 2;
} else if (SessionManager.getHitungDisfungsiBesarMasalah(context).equalsIgnoreCase("Masalah yang sangat besar")) {
nilaiBesarMasalah = 3;
}
besarMasalah = nilaiBesarMasalah + " " + SessionManager.getHitungDisfungsiBesarMasalah(context);
}
spinnerSeberapaSeringBermasalah.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Tidak")) {
nilaiSeringBermasalah = 0;
SessionManager.setHitungDisfungsiSeringBermasalah(context, "Tidak");
} else if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Ya dan merasa tidak masalah")) {
nilaiSeringBermasalah = 1;
SessionManager.setHitungDisfungsiSeringBermasalah(context, "Ya dan merasa tidak masalah");
} else if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Ya dan bermasalah")) {
nilaiSeringBermasalah = 2;
SessionManager.setHitungDisfungsiSeringBermasalah(context, "Ya dan bermasalah");
} else if (spinnerSeberapaSeringBermasalah.getText().toString().trim().equalsIgnoreCase("Ya dan sangat bermasalah")) {
nilaiSeringBermasalah = 3;
SessionManager.setHitungDisfungsiSeringBermasalah(context, "Ya dan sangat bermasalah");
}
seringBermasalah = nilaiSeringBermasalah + " " + spinnerSeberapaSeringBermasalah.getText().toString();
updateButtonNext();
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("HitungKualitasTidur", "Click:bagian afterChangedSeringBermasalahPassData");
passData(seringBermasalah, besarMasalah);
}
});
}
});
spinnerSeberapaBesarBermasalah.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (spinnerSeberapaBesarBermasalah.getText().toString().trim().equalsIgnoreCase("Tidak masalah sama sekali")) {
nilaiBesarMasalah = 0;
SessionManager.setHitungDisfungsiBesarMasalah(context, "Tidak");
} else if (spinnerSeberapaBesarBermasalah.getText().toString().trim().equalsIgnoreCase("Hanya masalah yang sangat kecil")) {
nilaiBesarMasalah = 1;
SessionManager.setHitungDisfungsiBesarMasalah(context, "Hanya masalah yang sangat kecil");
} else if (spinnerSeberapaBesarBermasalah.getText().toString().trim().equalsIgnoreCase("Agak bermasalah")) {
nilaiBesarMasalah = 2;
SessionManager.setHitungDisfungsiBesarMasalah(context, "Agak bermasalah");
} else if (spinnerSeberapaBesarBermasalah.getText().toString().trim().equalsIgnoreCase("Masalah yang sangat besar")) {
nilaiBesarMasalah = 3;
SessionManager.setHitungDisfungsiBesarMasalah(context, "Masalah yang sangat besar");
}
besarMasalah = nilaiBesarMasalah + " " + spinnerSeberapaBesarBermasalah.getText().toString();
updateButtonNext();
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("HitungKualitasTidur", "Click:bagian afterChangedBesarMasalahPassData");
passData(seringBermasalah, besarMasalah);
}
});
}
});
updateButtonNext();
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_penjelasan, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_info:
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.penjelasan_pertanyaan4_masalahdisianghari)
.setPositiveButton(R.string.ok, null)
.show();
break;
}
return super.onOptionsItemSelected(item);
}
private void updateButtonNext() {
if (besarMasalah == null || seringBermasalah == null) {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(false);
} else {
getActivity().findViewById(R.id.button_selanjutnya_hitungkualitasactivity).setClickable(true);
}
}
private void initView(View parentView) {
spinnerSeberapaSeringBermasalah = parentView.findViewById(R.id.spinner_seringmengalamimasalahdisianghari_pertanyaan3fragment);
spinnerSeberapaBesarBermasalah = parentView.findViewById(R.id.spinner_besarmasalahtiduryangpengaruhi_pertanyaan3fragment);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
dataPasser = (OnDataPassFromPertanyaan4) a;
}
public void passData(String seringBermasalah, String besarMasalah) {
dataPasser.OnDataPassFromPertanyaan4(seringBermasalah, besarMasalah);
}
@Override
public void onPause() {
super.onPause();
}
public interface OnDataPassFromPertanyaan4 {
void OnDataPassFromPertanyaan4(String seringBermasalah, String besarMasalah);
}
}
package id.diamondsleep.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import java.util.List;
import id.diamondsleep.R;
import id.diamondsleep.model.KualitasTidurPsqi;
import id.diamondsleep.utilities.Penghitungan;
import id.diamondsleep.view.activity.HasilHitungActivity;
/**
* Created by Bayu WPP on 5/30/2017.
*/
public class RiwayatHitungKualitasAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
static Context context;
List<KualitasTidurPsqi> historiList;
public RiwayatHitungKualitasAdapter(Context context, List<KualitasTidurPsqi> historiList) {
this.historiList = historiList;
RiwayatHitungKualitasAdapter.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
return new HistoriHolder(inflater.inflate(R.layout.adapter_historipenghitungan, parent, false));
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
((HistoriHolder) holder).bindData(historiList.get(position));
}
@Override
public int getItemCount() {
return historiList.size();
}
class HistoriHolder extends RecyclerView.ViewHolder {
TextView tanggal;
TextView totalSkor;
TextView nilai;
ImageView nilaiImage;
public HistoriHolder(final View inflate) {
super(inflate);
tanggal = inflate.findViewById(R.id.historiadapter_textview_tanggal);
totalSkor = inflate.findViewById(R.id.historiadapter_textview_totalskor);
nilai = inflate.findViewById(R.id.historiadapter_textview_nilai);
nilaiImage = inflate.findViewById(R.id.historiadapter_imageview_nilai);
inflate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), HasilHitungActivity.class);
intent.putExtra("detailHistori", new Gson().toJson(historiList.get(getAdapterPosition())));
inflate.getContext().startActivity(intent);
}
});
}
void bindData(KualitasTidurPsqi kualitasTidurPsqi) {
tanggal.setText(Penghitungan.convertDateFromDBFormat(kualitasTidurPsqi.getTanggal()));
int total = kualitasTidurPsqi.getSubjektif_kualitas_tidur() +
kualitasTidurPsqi.getLatensi_tidur() +
kualitasTidurPsqi.getDurasi_tidur() +
kualitasTidurPsqi.getEfisiensi_kebiasaan_tidur() +
kualitasTidurPsqi.getGangguan_tidur() +
kualitasTidurPsqi.getPenggunaan_obat() +
kualitasTidurPsqi.getDisfungsi_siang_hari();
totalSkor.setText(String.valueOf(total));
if (total > 5) {
nilai.setText(context.getResources().getString(R.string.tidak_berkualitas));
nilaiImage.setImageResource(R.mipmap.ic_sad_black);
} else {
nilai.setText(context.getResources().getString(R.string.berkualitas));
nilaiImage.setImageResource(R.mipmap.ic_smile_black);
}
}
}
}
package id.diamondsleep.model;
import java.io.Serializable;
import java.util.List;
/**
* Created by Bayu WPP on 5/7/2017.
*/
public class Tidur implements Serializable {
int id_tidur;
long waktu_ke_tempat_tidur;
long waktu_tidur;
long waktu_bangun;
long waktu_bangun_dari_tempat_tidur;
String tanggal;
public Tidur(int id_tidur, long waktu_ke_tempat_tidur, long waktu_tidur, long waktu_bangun, long waktu_bangun_dari_tempat_tidur, String tanggal) {
this.id_tidur = id_tidur;
this.waktu_ke_tempat_tidur = waktu_ke_tempat_tidur;
this.waktu_tidur = waktu_tidur;
this.waktu_bangun = waktu_bangun;
this.waktu_bangun_dari_tempat_tidur = waktu_bangun_dari_tempat_tidur;
this.tanggal = tanggal;
}
public Tidur(int id_tidur, long waktu_tidur, long waktu_bangun, String tanggal) {
this.id_tidur = id_tidur;
this.waktu_tidur = waktu_tidur;
this.waktu_bangun = waktu_bangun;
this.tanggal = tanggal;
}
public Tidur(long waktu_tidur) {
this.waktu_tidur = waktu_tidur;
}
public int getId_tidur() {
return id_tidur;
}
public void setId_tidur(int id_tidur) {
this.id_tidur = id_tidur;
}
public long getWaktu_ke_tempat_tidur() {
return waktu_ke_tempat_tidur;
}
public void setWaktu_ke_tempat_tidur(long waktu_ke_tempat_tidur) {
this.waktu_ke_tempat_tidur = waktu_ke_tempat_tidur;
}
public long getWaktu_tidur() {
return waktu_tidur;
}
public void setWaktu_tidur(long waktu_tidur) {
this.waktu_tidur = waktu_tidur;
}
public long getWaktu_bangun() {
return waktu_bangun;
}
public void setWaktu_bangun(long waktu_bangun) {
this.waktu_bangun = waktu_bangun;
}
public long getWaktu_bangun_dari_tempat_tidur() {
return waktu_bangun_dari_tempat_tidur;
}
public void setWaktu_bangun_dari_tempat_tidur(long waktu_bangun_dari_tempat_tidur) {
this.waktu_bangun_dari_tempat_tidur = waktu_bangun_dari_tempat_tidur;
}
public String getTanggal() {
return tanggal;
}
public void setTanggal(String tanggal) {
this.tanggal = tanggal;
}
public class TidurList extends Base {
private List<Tidur> result;
public List<Tidur> getResult() {
return result;
}
public void setResult(List<Tidur> result) {
this.result = result;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment