Last active
July 25, 2020 14:03
-
-
Save Lukmannudin/59dbb399a652bde987b539a0590aa8e2 to your computer and use it in GitHub Desktop.
Source Code Aplikasi Sleepy Platform Android Sebelum Reengineering
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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(); | |
| } | |
| }); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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(); | |
| // } | |
| // } | |
| //} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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