Framebuffer and NativeActivity

What was added:
* Framebuffer
* NativeActivity
* NV Services
* IOCTL Handler
* NV Devices:
* * /dev/nvmap - 0xC0080101, 0xC0080103, 0xC0200104, 0xC0180105, 0xC00C0109, 0xC008010E
* * /dev/nvhost-as-gpu
* * /dev/nvhost-channel - 0x40044801, 0xC0104809, 0xC010480B, 0xC018480C, 0x4004480D, 0xC020481A, 0x40084714
* * /dev/nvhost-ctrl
* * /dev/nvhost-ctrl-gpu - 0x80044701, 0x80284702, 0xC0184706, 0xC0B04705, 0x80084714
* SVCs:
* * SetMemoryAttribute
* * CreateTransferMemory
* * ResetSignal
* * GetSystemTick
* Addition of Compact Logger
What was fixed:
* SVCs:
* * SetHeapSize
* * SetMemoryAttribute
* * QueryMemory
* A release build would not set CMAKE_BUILD_TYPE to "RELEASE"
* The logger code was simplified
This commit is contained in:
◱ PixelyIon
2019-11-14 01:39:31 +05:30
committed by ◱ PixelyIon
parent 2e0014ba7c
commit c005d7df74
96 changed files with 3783 additions and 951 deletions

View File

@ -24,20 +24,20 @@ import me.xdrop.fuzzywuzzy.FuzzySearch;
import me.xdrop.fuzzywuzzy.model.ExtractedResult;
class ContentType implements Serializable {
transient static final int Header = 0;
transient static final int Item = 1;
static final transient int Header = 0;
static final transient int Item = 1;
public final int type;
public int index;
ContentType(int index, int type) {
ContentType(final int index, final int type) {
this(type);
this.index = index;
}
private ContentType(int type) {
private ContentType(final int type) {
switch (type) {
case Item:
case Header:
case ContentType.Item:
case ContentType.Header:
break;
default:
throw (new IllegalArgumentException());
@ -59,15 +59,15 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
private ArrayList<String> header_array;
private String search_term = "";
HeaderAdapter(Context context) {
mContext = context;
this.item_array = new ArrayList<>();
this.header_array = new ArrayList<>();
this.type_array_uf = new ArrayList<>();
this.type_array = new ArrayList<>();
HeaderAdapter(final Context context) {
HeaderAdapter.mContext = context;
item_array = new ArrayList<>();
header_array = new ArrayList<>();
type_array_uf = new ArrayList<>();
type_array = new ArrayList<>();
}
public void add(Object item, int type) {
public void add(final Object item, final int type) {
if (type == ContentType.Item) {
item_array.add((ItemType) item);
type_array_uf.add(new ContentType(item_array.size() - 1, ContentType.Item));
@ -76,31 +76,31 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
type_array_uf.add(new ContentType(header_array.size() - 1, ContentType.Header));
}
if (search_term.length() != 0)
this.getFilter().filter(search_term);
getFilter().filter(search_term);
else
type_array = type_array_uf;
}
public void save(File file) throws IOException {
State state = new State<>(item_array, header_array, type_array_uf);
FileOutputStream file_obj = new FileOutputStream(file);
ObjectOutputStream out = new ObjectOutputStream(file_obj);
public void save(final File file) throws IOException {
final HeaderAdapter.State state = new HeaderAdapter.State(item_array, header_array, type_array_uf);
final FileOutputStream file_obj = new FileOutputStream(file);
final ObjectOutputStream out = new ObjectOutputStream(file_obj);
out.writeObject(state);
out.close();
file_obj.close();
}
void load(File file) throws IOException, ClassNotFoundException {
FileInputStream file_obj = new FileInputStream(file);
ObjectInputStream in = new ObjectInputStream(file_obj);
State state = (State) in.readObject();
void load(final File file) throws IOException, ClassNotFoundException {
final FileInputStream file_obj = new FileInputStream(file);
final ObjectInputStream in = new ObjectInputStream(file_obj);
final HeaderAdapter.State state = (HeaderAdapter.State) in.readObject();
in.close();
file_obj.close();
if (state != null) {
this.item_array = state.item_array;
this.header_array = state.header_array;
this.type_array_uf = state.type_array;
this.getFilter().filter(search_term);
item_array = state.item_array;
header_array = state.header_array;
type_array_uf = state.type_array;
getFilter().filter(search_term);
}
}
@ -118,8 +118,8 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
}
@Override
public Object getItem(int i) {
ContentType type = type_array.get(i);
public Object getItem(final int i) {
final ContentType type = type_array.get(i);
if (type.type == ContentType.Item)
return item_array.get(type.index);
else
@ -127,12 +127,12 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
}
@Override
public long getItemId(int position) {
public long getItemId(final int position) {
return position;
}
@Override
public int getItemViewType(int position) {
public int getItemViewType(final int position) {
return type_array.get(position).type;
}
@ -149,24 +149,24 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
FilterResults results = new FilterResults();
protected Filter.FilterResults performFiltering(final CharSequence charSequence) {
final Filter.FilterResults results = new Filter.FilterResults();
search_term = ((String) charSequence).toLowerCase().replaceAll(" ", "");
if (charSequence.length() == 0) {
results.values = type_array_uf;
results.count = type_array_uf.size();
} else {
ArrayList<ContentType> filter_data = new ArrayList<>();
ArrayList<String> key_arr = new ArrayList<>();
SparseIntArray key_ind = new SparseIntArray();
final ArrayList<ContentType> filter_data = new ArrayList<>();
final ArrayList<String> key_arr = new ArrayList<>();
final SparseIntArray key_ind = new SparseIntArray();
for (int index = 0; index < type_array_uf.size(); index++) {
ContentType item = type_array_uf.get(index);
final ContentType item = type_array_uf.get(index);
if (item.type == ContentType.Item) {
key_arr.add(item_array.get(item.index).key().toLowerCase());
key_ind.append(key_arr.size() - 1, index);
}
}
for (ExtractedResult result : FuzzySearch.extractTop(search_term, key_arr, Math.max(1, 10 - search_term.length())))
for (final ExtractedResult result : FuzzySearch.extractTop(search_term, key_arr, Math.max(1, 10 - search_term.length())))
if (result.getScore() >= 35)
filter_data.add(type_array_uf.get(key_ind.get(result.getIndex())));
results.values = filter_data;
@ -176,7 +176,7 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
protected void publishResults(final CharSequence charSequence, final Filter.FilterResults filterResults) {
type_array = (ArrayList<ContentType>) filterResults.values;
notifyDataSetChanged();
}
@ -188,7 +188,7 @@ abstract class HeaderAdapter<ItemType extends BaseItem> extends BaseAdapter impl
private final ArrayList<String> header_array;
private final ArrayList<ContentType> type_array;
State(ArrayList<StateType> item_array, ArrayList<String> header_array, ArrayList<ContentType> type_array) {
State(final ArrayList<StateType> item_array, final ArrayList<String> header_array, final ArrayList<ContentType> type_array) {
this.item_array = item_array;
this.header_array = header_array;
this.type_array = type_array;