Project

General

Profile

Download (5.45 KB) Statistics
| Branch: | Revision:

examples / src / main / java / org / distorted / examples / save / SaveActivity.java @ 77e66c58

1 bc0a685b Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4 71c8884f Leszek Koltunski
// This file is part of Distorted.                                                               //
5 bc0a685b Leszek Koltunski
//                                                                                               //
6 71c8884f Leszek Koltunski
// Distorted is free software: you can redistribute it and/or modify                             //
7 bc0a685b Leszek Koltunski
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11 71c8884f Leszek Koltunski
// Distorted is distributed in the hope that it will be useful,                                  //
12 bc0a685b Leszek Koltunski
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17 71c8884f Leszek Koltunski
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18 bc0a685b Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
19 a2cb31e9 Leszek Koltunski
20
package org.distorted.examples.save;
21
22 e3900503 Leszek Koltunski
import org.distorted.library.main.DistortedLibrary;
23 a2cb31e9 Leszek Koltunski
import org.distorted.examples.R;
24
25 e3efd628 Leszek Koltunski
import android.Manifest;
26 a2cb31e9 Leszek Koltunski
import android.app.Activity;
27 e3efd628 Leszek Koltunski
import android.content.pm.PackageManager;
28 a2cb31e9 Leszek Koltunski
import android.opengl.GLSurfaceView;
29
import android.os.Bundle;
30 2fad84a7 Leszek Koltunski
import androidx.core.app.ActivityCompat;
31 a2cb31e9 Leszek Koltunski
import android.view.View;
32
import android.widget.SeekBar;
33
34
///////////////////////////////////////////////////////////////////////////////////////////////////
35
36
public class SaveActivity extends Activity implements SeekBar.OnSeekBarChangeListener
37 bc0a685b Leszek Koltunski
  {
38 e3efd628 Leszek Koltunski
  private static final int REQUEST_EXTERNAL_STORAGE = 1;
39
  private static String[] PERMISSIONS_STORAGE =
40
     {
41
     Manifest.permission.READ_EXTERNAL_STORAGE,
42
     Manifest.permission.WRITE_EXTERNAL_STORAGE
43
     };
44
45
///////////////////////////////////////////////////////////////////////////////////////////////////
46 b4cc083b Leszek Koltunski
// Checks if the app has permission to write to device storage.
47
// If not, the user will be prompted to grant ut.
48 e3efd628 Leszek Koltunski
49 8460c173 Leszek Koltunski
  private void verifyStoragePermissions()
50
    {
51
    int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
52 e3efd628 Leszek Koltunski
53 8460c173 Leszek Koltunski
    if (permission != PackageManager.PERMISSION_GRANTED)
54
      {
55
      ActivityCompat.requestPermissions( this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE );
56
      }
57
    }
58 e3efd628 Leszek Koltunski
59 a2cb31e9 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
60
    
61 bc0a685b Leszek Koltunski
  @Override
62
  protected void onCreate(Bundle icicle) 
63
    {
64
    super.onCreate(icicle);
65 a9df241d Leszek Koltunski
    DistortedLibrary.onCreate();
66 bc0a685b Leszek Koltunski
    setContentView(R.layout.savelayout);
67 a2cb31e9 Leszek Koltunski
68 a4d59c0b Leszek Koltunski
    SeekBar barSize  = findViewById(R.id.saveSeekBarSize);
69 bc0a685b Leszek Koltunski
    barSize.setOnSeekBarChangeListener(this);
70
    barSize.setProgress(50);
71 5055b5d4 Leszek Koltunski
72 a4d59c0b Leszek Koltunski
    SeekBar barScale = findViewById(R.id.saveSeekBarScale);
73 5055b5d4 Leszek Koltunski
    barScale.setOnSeekBarChangeListener(this);
74
    barScale.setProgress(100);
75 bc0a685b Leszek Koltunski
    }
76 a2cb31e9 Leszek Koltunski
77
///////////////////////////////////////////////////////////////////////////////////////////////////
78
    
79 bc0a685b Leszek Koltunski
  @Override
80
  protected void onPause() 
81
    {
82 c0f27889 Leszek Koltunski
    super.onPause();
83 a4d59c0b Leszek Koltunski
    GLSurfaceView view = findViewById(R.id.saveSurfaceView);
84 13a5c5cd Leszek Koltunski
    view.onPause();
85 e3900503 Leszek Koltunski
    DistortedLibrary.onPause();
86 bc0a685b Leszek Koltunski
    }
87 a2cb31e9 Leszek Koltunski
88
///////////////////////////////////////////////////////////////////////////////////////////////////
89
    
90 bc0a685b Leszek Koltunski
  @Override
91
  protected void onResume() 
92
    {
93
    super.onResume();
94 a4d59c0b Leszek Koltunski
    GLSurfaceView view = findViewById(R.id.saveSurfaceView);
95 13a5c5cd Leszek Koltunski
    view.onResume();
96 e4237c21 Leszek Koltunski
97 01d34e10 Leszek Koltunski
    SaveWorkerThread.create(this);
98 bc0a685b Leszek Koltunski
    }
99 a2cb31e9 Leszek Koltunski
 
100
///////////////////////////////////////////////////////////////////////////////////////////////////
101
    
102 bc0a685b Leszek Koltunski
  @Override
103
  protected void onDestroy() 
104
    {
105 e3900503 Leszek Koltunski
    DistortedLibrary.onDestroy();
106 bc0a685b Leszek Koltunski
    super.onDestroy();
107
    }
108 a2cb31e9 Leszek Koltunski
   
109
///////////////////////////////////////////////////////////////////////////////////////////////////
110
111 bc0a685b Leszek Koltunski
  public void Save(View v)
112
    {
113 e3efd628 Leszek Koltunski
    verifyStoragePermissions();
114
115 a4d59c0b Leszek Koltunski
    SaveSurfaceView view = findViewById(R.id.saveSurfaceView);
116 13a5c5cd Leszek Koltunski
    view.getRenderer().Save();
117 bc0a685b Leszek Koltunski
    }
118 a2cb31e9 Leszek Koltunski
119
///////////////////////////////////////////////////////////////////////////////////////////////////
120
121 bc0a685b Leszek Koltunski
  public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
122
    {
123 77e66c58 Leszek Koltunski
    SaveSurfaceView v = findViewById(R.id.saveSurfaceView);
124
    SaveRenderer r = v.getRenderer();
125
    int id = bar.getId();
126 5055b5d4 Leszek Koltunski
127 77e66c58 Leszek Koltunski
    if( id == R.id.saveSeekBarSize ) r.setSize(progress>50 ? ((progress-50)/16.0f + 1.0f):(0.015f*progress + 0.25f));
128
    if( id == R.id.saveSeekBarScale) r.setScale(0.009f*progress+0.1f);
129 bc0a685b Leszek Koltunski
    }
130 a2cb31e9 Leszek Koltunski
131
///////////////////////////////////////////////////////////////////////////////////////////////////
132
133 bc0a685b Leszek Koltunski
  public void onStartTrackingTouch(SeekBar bar) { }
134 a2cb31e9 Leszek Koltunski
135
///////////////////////////////////////////////////////////////////////////////////////////////////
136
137 bc0a685b Leszek Koltunski
  public void onStopTrackingTouch(SeekBar bar)  { }
138 a2cb31e9 Leszek Koltunski
139 bc0a685b Leszek Koltunski
  }