Compare commits

...

9 Commits

Author SHA1 Message Date
cuikaibo 76aca10c1a 6.20
3 years ago
xz250 5d7208f522 Merge branch 'xuzheng' of https://bdgit.educoder.net/pbnjik389/shijianer
3 years ago
xz250 6fe77c0a39 1
3 years ago
cuikaibo b66ff92ad0 6.7更新
3 years ago
cuikaibo20 e4aa985d94 更新
3 years ago
cuikaibo20 8d874ff94c 更新
3 years ago
cuikaibo20 4a28c3a707 更新
3 years ago
cuikaibo20 55b82d0025 更新
3 years ago
cuikaibo20 73d7b7de30 更改
3 years ago

@ -0,0 +1,18 @@
CC = gcc
CFLAGS = -Wall -O -g
CXXFLAGS =
INCLUDE = -I ./include/
TARGET = sent
LIBVAR = -lua -lreg -lsent -lpthread
LIBPATH = -L./lib
vpath %.h ./include
vpath %.c ./
all: main_sent.c $(LIB)
# cd ./staticlib && make all
$(CC) $(CFLAGS) $(INCLUDE) -o $(TARGET) main_sent.c SentSocket.c $(LIBVAR) $(LIBPATH)
clean:
rm -f *.o
rm -f $(TARGET)

@ -0,0 +1,187 @@
// 创建监套接字
#include "SentSocket.h"
int createSocket()
{
int fd = socket(AF_INET, SOCK_STREAM, 0);
if (fd == -1)
{
perror("socket");
return -1;
}
printf("套接字创建成功, fd=%d\n", fd);
return fd;
}
// 绑定本地的IP和端口
int bindSocket(int lfd, unsigned short port)
{
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(port);
saddr.sin_addr.s_addr = INADDR_ANY; // 0 = 0.0.0.0
int ret = bind(lfd, (struct sockaddr *)&saddr, sizeof(saddr));
if (ret == -1)
{
perror("bind");
return -1;
}
printf("套接字绑定成功, ip: %s, port: %d\n",
inet_ntoa(saddr.sin_addr), port);
return ret;
}
// 设置监听
int setListen(int lfd)
{
int ret = listen(lfd, 128);
if (ret == -1)
{
perror("listen");
return -1;
}
printf("设置监听成功...\n");
return ret;
}
// 阻塞并等待客户端的连接
int acceptConn(int lfd, struct sockaddr_in *addr)
{
int cfd = -1;
if (addr == NULL)
{
cfd = accept(lfd, NULL, NULL);
}
else
{
int addrlen = sizeof(struct sockaddr_in);
cfd = accept(lfd, (struct sockaddr *)addr, &addrlen);
}
if (cfd == -1)
{
perror("accept");
return -1;
}
printf("成功和客户端建立连接...\n");
return cfd;
}
// 接收数据
int recvMsg(int cfd, char *msg)
{
if (msg == NULL || cfd <= 0)
{
return -1;
}
// 接收数据
// 1. 读数据头
int len = 0;
readn(cfd, (char *)&len, 4);
len = ntohl(len);
printf("数据块大小: %d\n", len);
// 根据读出的长度分配内存
char *buf = (char *)malloc(len + 1);
int ret = readn(cfd, buf, len);
if (ret != len)
{
return -1;
}
buf[len] = '\0';
*msg = buf;
return ret;
}
// 发送数据
int sendMsg(int cfd, const char *msg, int len)
{
if (msg == NULL || len <= 0)
{
return -1;
}
// 申请内存空间: 数据长度 + 包头4字节(存储数据长度)
char *data = (char *)malloc(len + 4);
int bigLen = htonl(len);
memcpy(data, &bigLen, 4);
memcpy(data + 4, msg, len);
// 发送数据
int ret = writen(cfd, data, len + 4);
return ret;
}
// 连接服务器
int connectToHost(int fd, const char *ip, unsigned short port)
{
// 2. 连接服务器IP port
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(port);
inet_pton(AF_INET, ip, &saddr.sin_addr.s_addr);
int ret = connect(fd, (struct sockaddr *)&saddr, sizeof(saddr));
if (ret == -1)
{
perror("connect");
return -1;
}
printf("成功和服务器建立连接...\n");
return ret;
}
// 关闭套接字
int closeSocket(int fd)
{
int ret = close(fd);
if (ret == -1)
{
perror("close");
}
return ret;
}
// 接收指定的字节数
// 函数调用成功返回 size
int readn(int fd, char *buf, int size)
{
int nread = 0;
int left = size;
char *p = buf;
while (left > 0)
{
if ((nread = read(fd, p, left)) > 0)
{
printf("%d\n", nread);
p += nread;
left -= nread;
}
else if (nread == -1)
{
return -1;
}
}
return size;
}
// 发送指定的字节数
// 函数调用成功返回 size
int writen(int fd, const char *msg, int size)
{
int left = size;
int nwrite = 0;
const char *p = msg;
while (left > 0)
{
if ((nwrite = write(fd, msg, left)) > 0)
{
p += nwrite;
left -= nwrite;
}
else if (nwrite == -1)
{
return -1;
}
}
return size;
}

Binary file not shown.

@ -0,0 +1,18 @@
#ifndef SENTSOCKET_H
#define SENTSOCKET_H
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int bindSocket(int lfd, unsigned short port);
int setListen(int lfd);
int acceptConn(int lfd, struct sockaddr_in *addr);
int connectToHost(int fd, const char *ip, unsigned short port);
int createSocket();
int sendMsg(int fd, const char *msg, int len);
int recvMsg(int fd, char *msg);
int closeSocket(int fd);
int readn(int fd, char *buf, int size);
int writen(int fd, const char *msg, int size);
#endif

@ -0,0 +1,80 @@
#ifndef __FAST_H__
#define __FAST_H__
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <endian.h>
#include <signal.h>
#include <memory.h>
#include <pthread.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <linux/if_ether.h>
#include <linux/netlink.h>
#include <netinet/in.h> /*IPv6 addr*/
#include <sys/file.h>
#include <sys/mman.h>
/** 是否启动软件调试模式,不启用对硬件操作,对硬件寄存器读写进行屏蔽,仅做打印输出 */
#define XDL_DEBUG 1 /**< 启用软件调试模式 */
#undef XDL_DEBUG /**< 不启用软件调试模式 */
/** 硬件平台使用ZYNQ系列的定义20180601开始使用*/
#define OPENBOX_S4 1 /**< 硬件平台使用ZYNQ平台 */
//#undef OPENBOX_S4 /**< 硬件平台不使用ZYNQ平台 */
/** 硬件平台使用OpenBox-S28系列的定义20180601开始使用*/
#define OPENBOX_S28 1 /**< 硬件平台使用ZYNQ平台 */
#undef OPENBOX_S28 /**< 硬件平台不使用ZYNQ平台 */
/*FAST架构数据结构版本号1.0*/
#define FAST_10 1
#undef FAST_10
/*FAST架构数据结构版本号2.0*/
#define FAST_20 1
//#undef FAST_20
/** 硬件查表模式是否使用BV查表默认为顺序匹配查表 */
#define LOOKUP_BV 1 /**< 硬件查表使用BV */
#undef LOOKUP_BV /**< 硬件查表不使用BV */
#include "fast_type.h"
#include "fast_struct.h"
#include "fast_err.h"
#include "fast_vaddr.h"
#include "fast_version.h"
#include "fast_sys_dev.h"
#include "sent_driver.h"
/*---------------REG------------------*/
u64 fast_reg_rd(u64 regaddr);/** 读硬件64位寄存器*/
void fast_reg_wr(u64 regaddr,u64 regvalue);/** 写硬件64位寄存器*/
/*---------------UA------------------*/
int fast_ua_init(int mid,fast_ua_recv_callback callback);/** UA模块初始化*/
void fast_ua_destroy(void);/** UA模块注销(销毁)*/
int fast_ua_send(struct fast_packet *pkt,int pkt_len);/** UA发送报文功能函数*/
void fast_ua_recv();/** UA启动报文接收线程(接收到报文后,回调用户注册函数)*/
void fast_ua_hw_wr(u8 dmid,u32 addr,u32 value,u32 mask);
u32 fast_ua_hw_rd(u8 dmid,u32 addr,u32 mask);
/*--------------DEBUG----------------*/
#ifdef FAST_KERNEL
#define PFX "fastK->"
#define EPFX "KERR-fast->"
#define FAST_DBG(args...) printk(PFX args)
#define FAST_ERR(args...) printk(EPFX args)
#else
#define PFX "fastU->"
#define EPFX "UERR-fast->"
#define FAST_DBG(args...) do{printf(PFX);printf(args);}while(0)
#define FAST_ERR(args...) do{printf(EPFX);printf(args);exit(0);}while(0)
#endif
#endif//__FAST_H__

@ -0,0 +1,146 @@
#ifndef __SENT_DRIVER_H__
#define __SENT_DRIVER_H__
#include <unistd.h>
//#include "fast_type.h"
typedef char s8;
typedef unsigned char u8;
typedef short s16;
typedef unsigned short u16;
typedef int s32;
typedef unsigned int u32;
typedef long long s64;
typedef unsigned long long u64;
/*
//declaration of vaddr on sent-PGM
*/
#define SENT_TIME_CNT 0x00000002 // 64b, test time counter
#define SENT_TIME_REG 0x00010002 // 64b, test time reg
#define WR_SOFT_RST 0x00000000 // 1b, software rst for pgm_wr
#define SENT_RATE_CNT 0x00000001 // 32b, sent rate counter
#define SENT_RATE_REG 0x00010001 // 32b, sent rate reg
#define LAT_PKT_CNT 0x00000002 // 32b, for latency test cnt
#define LAT_PKT_REG 0x00010002 // 32b, for latency test reg
#define SENT_BIT_CNT 0x00000004 // 64b, total sent bits
#define SENT_PKT_CNT 0x00000006 // 64b, total sent packets
#define LAT_FLAG 0x00010010 // 1b, latency test flag
#define RD_SOFT_RST 0x00000000 // 1b, software rst for pgm_rd
#define RD_STATE 0x11111111 // 6b, pgm_rd state machine
/*
//declaration of vaddr on sent (SCM part)
*/
#define SCM_STATE 0x70000000 // 3b, scm_state machine
#define SCM_SOFT_RST 0x70000001 // 1b, software rst for SCM
#define N_RTT 0x70000002 // 32b, total wait time after receiving finish signal
#define PROTO_TYPE 0x70000003 // 8b, protype of packets
#define SCM_BIT_CNT 0x70000009 // 64b, total received bits of SCM
#define SCM_PKT_CNT 0x7000000b // 64b, total received packets of SCM
//#define SCM_TIME_CNT 0x7000000d // 64b, total monitoring time of SCM
#define SCM_RAM_ADDR 0x80000000 // 32b, the base addr of latency in SCM_RAM
#define sent_HW_STATE 0x11111111
/*
//decalartion of state machine of PGM and SCM
*/
#define SCM_FETCH_S 4
#define PGM_RD_FIN_S 16
/**
*
*/
struct sent_cnt
{
u64 test_time; /** 共计测试时间 */
u64 sent_bits; /** total sent bytes of pcakets */
u64 sent_pkts; /** total sent num of packets */
u64 recv_bits; /** total received bytes of sending packets*/
u64 recv_pkts; /** total received number of sending packets*/
};
struct sent_parameter
{
u64 sent_time; /**total testing time period*/
u32 sent_rate; /** sending rate, num of cycles between two packets*/
u32 lat_pkt; /** blocking num pof packet between two latency flag packets*/
u8 lat_flag; /** Flag for enabling latency test*/
u32 n_rtt; /** Controlling the waiting time after sending last packet*/
u8 proto_type; /** Protocol type used in SCM*/
};
/*-------------------sent CORE FUNCTION ------------------*/
int sent_collect_counters(struct sent_cnt *result); /**获取FPGA中相关计数器的当前值*/
int sent_rst(); /**将sent的硬件模块重置为idle状态*/
int sent_check_finish(); /**检查sent hw是否已经运行结束*/
int sent_pkt_send(struct fast_packet *pkt, int pkt_len); /**发送sent报文并触发sent开始进行测试*/
u32 sent_dich_throughput_test(struct fast_packet *pkt, int pkt_len, int rnd, u32 sent_rate, u64 test_time); /**通过二分法测量吞吐率*/
int sent_set_test_para(struct sent_parameter sentp); /**设置sent测试参数*/
//@TODO support latency test in the future
//int sent_latency_test(struct fast_packet *pkt, int pkt_len); /**测量平均时延*/
void sent_print_counters(struct sent_cnt a_cnt, int len);
int import_latency_to_txt(); /**测量时延并将时延信息写入latency.txt文件*/
/*-------------------sent CORE FUNCTION ------------------*/
/*-------------------SET COUNTER & REG------------------*/
//caution that not all reg values could be set
int sent_set_sent_time_cnt(u64 regvalue);
int sent_set_sent_time_reg(u64 regvalue);
int sent_set_sent_rate_cnt(u64 regvalue);
int sent_set_sent_rate_reg(u64 regvalue);
int sent_set_lat_pkt_cnt(u64 regvalue);
int sent_set_lat_pkt_reg(u64 regvalue);
int sent_set_sent_bit_cnt(u64 regvalue);
int sent_set_sent_pkt_cnt(u64 regvalue);
int sent_set_lat_flag(u64 regvalue);
int sent_set_rd_soft_rst(u64 regvalue);
int sent_set_proto_type(u64 regvalue);
int sent_set_scm_soft_rst(u64 regvalue);
int sent_set_n_rtt(u64 regvalue);
int sent_set_scm_bit_cnt(u64 regvalue);
int sent_set_scm_pkt_cnt(u64 regvalue);
/*-------------------COUNTER & REG------------------*/
/*-------------------GET COUNTER & REG------------------*/
int sent_get_sent_time_cnt(u64 *regvalue);
int sent_get_sent_time_reg(u64 *regvalue);
int sent_get_sent_rate_cnt(u64 *regvalue);
int sent_get_sent_rate_reg(u64 *regvalue);
int sent_get_lat_pkt_cnt(u64 *regvalue);
int sent_get_lat_pkt_reg(u64 *regvalue);
int sent_get_sent_bit_cnt(u64 *regvalue);
int sent_get_sent_pkt_cnt(u64 *regvalue);
int sent_get_lat_flag(u64 *regvalue);
int sent_get_rd_soft_rst(u64 *regvalue);
int sent_get_proto_type(u64 *regvalue);
int sent_get_scm_soft_rst(u64 *regvalue);
int sent_get_n_rtt(u64 *regvalue);
int sent_get_scm_bit_cnt(u64 *regvalue);
int sent_get_scm_pkt_cnt(u64 *regvalue);
/*-------------------COUNTER & REG-------------------*/
#endif

@ -0,0 +1,23 @@
# make static lib
CC = gcc
CFLAGS = -Wall -O -g
CXXFLAGS =
INCLUDE = -I ../include
TARGET = libsent.a
LIBPATH = ./
OBJS = libsent.o
SRCS = libsent.c
all:$(OBJS)
ar rcs $(TARGET) $^
$(OBJS):$(SRCS)
$(CC) $(CFLAGS) $(INCLUDE) -c $^ -lua -lreg -lpthread
clean:
rm -f *.o
#rm -f $(LIBPATH)*

Binary file not shown.

@ -0,0 +1,555 @@
#include <fast.h>
#include "../include/sent_driver.h"
#include <unistd.h>
#define SCM_MID 7
#define PGM_MID 6
#define PGM_WR_MID 61
#define PGM_RD_MID 62
#define MASK_1 0x0
/*---------------------------------sent CORE FUNCTION ----------------------------*/
/**
* collect result counter values from PGM and SCM modules
* @param outc valuable counter values in SCM and PGM module
* @return 0 if success
*/
int sent_collect_counters(struct sent_cnt *outc)
{
u64 test_time = ((u64)fast_ua_hw_rd(PGM_WR_MID, SENT_TIME_CNT, MASK_1)<<32) + fast_ua_hw_rd(PGM_WR_MID, SENT_TIME_CNT-1, MASK_1);
//printf("test_time = %llx\n", test_time);
u64 sent_bits = ((u64)fast_ua_hw_rd(PGM_RD_MID, SENT_BIT_CNT, MASK_1)<<32) + fast_ua_hw_rd(PGM_RD_MID, SENT_BIT_CNT-1, MASK_1);
//printf("test_time = %llx\n", sent_bits);
u64 sent_pkts = ((u64)fast_ua_hw_rd(PGM_RD_MID, SENT_PKT_CNT, MASK_1)<<32) + fast_ua_hw_rd(PGM_RD_MID, SENT_PKT_CNT-1, MASK_1);
//printf("test_time = %llx\n", sent_pkts);
u64 recv_bits = ((u64)fast_ua_hw_rd(SCM_MID, SCM_BIT_CNT, MASK_1)<<32) + fast_ua_hw_rd(SCM_MID, SCM_BIT_CNT-1, MASK_1);
//printf("test_time = %llx\n", recv_bits);
u64 recv_pkts = ((u64)fast_ua_hw_rd(SCM_MID, SCM_PKT_CNT, MASK_1)<<32) + fast_ua_hw_rd(SCM_MID, SCM_PKT_CNT-1, MASK_1);
//printf("test_time = %llx\n", recv_pkts);
outc->test_time = test_time;
outc->sent_bits = sent_bits;
outc->sent_pkts = sent_pkts;
outc->recv_bits = recv_bits;
outc->recv_pkts = recv_pkts;
return 0;
}
/**
* check the hw module of sent to see if all the modules are waiting for software reset
* @return [0 if true, otherwise return 1]
*/
int sent_check_finish()
{
if(fast_ua_hw_rd(PGM_RD_MID, sent_HW_STATE, MASK_1) == 0x910){
return 0;
}
else
return 1;
}
/**
* set test parameters on registers of sent modules
* @param sentp [the struct of sent parameters]
* @return [0 if success]
*/
int sent_set_test_para(struct sent_parameter sentp)
{
int i=0;
i += sent_set_sent_time_reg((u64)sentp.sent_time);
i += sent_set_sent_rate_reg((u64)sentp.sent_rate);
i += sent_set_lat_pkt_reg((u64)sentp.lat_pkt);
i += sent_set_lat_flag((u64)sentp.lat_flag);
i += sent_set_n_rtt((u64)sentp.n_rtt);
i += sent_set_proto_type((u64)sentp.proto_type);
return i;
}
/**
* send a model packet to sent hw and trigger sent to start testing
* @param pkt [model packet]
* @param pkt_len [the length of model packet]
* @return [pkt_len if success, else return -1]
*/
int sent_pkt_send(struct fast_packet *pkt, int pkt_len)
{
//used for debug
print_pkt(pkt, pkt_len);
//sent model packet
return fast_ua_send(pkt, pkt_len);
}
/**
* test the throughput using dich method, caution that this is a blocking function, only
* returns onces finished
* @param pkt [model packet]
* @param pkt_len [the length of model packet]
* @return [final throughput of the tested port]
*/
/*
u32 sent_dich_throughput_test(struct fast_packet *pkt, int pkt_len, int rnt, u32 sent_rate, u64 test_time)
{
int rnt_cnt;
u32 sent_rate_low = 0, sent_rate_high = sent_rate;
struct sent_cnt sentc;
//set test paramters
struct sent_parameter sentp;
sentp.sent_time = test_time;
sentp.sent_rate = sent_rate;
sentp.lat_pkt = 0;
sentp.lat_flag = 0;
sentp.n_rtt = 2; //we set n_rtt as 2 as default
sent_set_test_para(sentp);
sent_pkt_send(pkt, pkt_len);
usleep(test_time/100);
//chech if the test is finished
for(rnt_cnt = 0; rnt_cnt < rnt; rnt_cnt++){
sent_set_test_para(sentp);
sent_pkt_send(pkt, pkt_len);
usleep(test_time/100);
while(!sent_check_finish()){
usleep(100);
}
if(sent_collect_counters(sentc)){
printf("the dich exit with an error\n");
return -1;
}
if (sentc.sent_pkts == sentc.recv_pkts)
{
sent_rate_low = (sent_rate_high + sent_rate_low) / 2;
sentp.sent_rate = sent_rate_low;
}
else {
sent_rate_high = (sent_rate_high + sent_rate_low) / 2;
sentp.sent_rate = sent_rate_high;
}
}
return sentp.sent_rate;
}
*/
/**
* print the final counter values of the test
* @param sent_cnt [description]
*/
void sent_print_counters(struct sent_cnt a_cnt, int len){
printf("-----------------------***sent COUNTERS***-----------------------\n");
a_cnt.sent_bits = a_cnt.sent_bits-a_cnt.sent_pkts*16;
a_cnt.recv_bits = a_cnt.recv_bits-a_cnt.recv_pkts*32;
printf("Test Time:\t%llu *10ns\n", a_cnt.test_time);
printf("Sent Pkt Bytes:\t%llu\t Bytes\n", a_cnt.sent_bits);
printf("Sent Pkt Num:\t%llu\t\n", a_cnt.sent_pkts);
printf("Sent Pkt Rate:\t%llf\tKpps\n", (double)(a_cnt.sent_pkts*100000.0/a_cnt.test_time));
printf("Sent Bit Rate:\t%llf\tMbps\n", (double)(a_cnt.sent_bits*100*8.0/a_cnt.test_time));
printf("Recv Pkt Bytes:\t%llu\t Bytes\n", a_cnt.recv_bits);
printf("Recv Pkt Num:\t%llu\n", a_cnt.recv_pkts);
printf("Recv Pkt Rate:\t%llf\tKpps\n",(double)(a_cnt.recv_pkts*100000.0/a_cnt.test_time));
printf("Recv Bit Rate:\t%llf\tMbps\n",(double)((a_cnt.recv_bits*8*100.0)/a_cnt.test_time));
printf("-----------------------***sent COUNTERS***-----------------------\n");
}
/**
* reset the hw pipeline in order to enable next text round
* @return [0 if success, else failure]
*/
int sent_rst(){
//reset PGM module
u32 rd_state = fast_ua_hw_rd(PGM_RD_MID, RD_STATE, MASK_1);
if (rd_state == 0x910){
if(sent_set_rd_soft_rst(1) != 0)
return -1;
if(sent_set_rd_soft_rst(0) != 0)
return -1;
fast_ua_hw_wr(SCM_MID, 0x70000001, 1, MASK_1);
fast_ua_hw_wr(SCM_MID, 0x70000001, 0, MASK_1);
}
else {
return -1;
}
return 0;
}
/**
* Read latency into latency test file, in a readable format
* @return [0 if success, else return -1]
*/
int import_latency_to_txt(int size){
FILE * fid = fopen("latency_out", "w");
if (fid == NULL){
printf("write latency_out.txt error!\n");
return -1;
}
fprintf(fid, "/*****************latency test result****************/\n");
fprintf(fid, " Unit *10ns \n");
int i, j=0;
u32 in_file_latency = 0;
for (i = 0; i < 1023; i++){
in_file_latency = fast_ua_hw_rd(SCM_MID, SCM_RAM_ADDR + i, MASK_1);
usleep(1);
if(size>0 && size<=64){
fprintf(fid, "%04d round: %uns\t", i, (in_file_latency*10-260));
}
else if(size >64 && size <=128){
fprintf(fid, "%04d round: %uns\t", i, (in_file_latency*10-730));
}
else if(size>128 && size <=256){
fprintf(fid, "%04d round: %uns\t", i, (in_file_latency*10-2400));
}
else if(size>256 && size <= 512){
fprintf(fid, "%04d round: %uns\t", i, (in_file_latency*10-5710));
}
else if(size>512 && size <= 1024){
fprintf(fid, "%04d round: %uns\t", i, (in_file_latency*10-12370));
}
else if(size>1024 && size <= 1500){
fprintf(fid, "%04d round: %uns\t", i, (in_file_latency*10-19370));
}
else
fprintf(fid, "%04d round: invalid value.\t", i);
j++;
if(j == 5){
fprintf(fid, "\n");
j = 0;
}
}
fprintf(fid, "\n/*****************latency test result****************/\n");
fclose(fid);
printf("latency_out.txt generated!\n");
return 0;
}
/*---------------------------------sent CORE FUNCTION ----------------------------*/
/*---------------------------------SET REG & COUNTERS----------------------------*/
/**
* set sent_time_cnt value in PGM module
* @param regvalue reset sent_time_cnt
* @return 0 if success
*/
int sent_set_sent_time_cnt(u64 regvalue)
{
u32 regvalue_tmp_high = ((u32) regvalue>>32);
u32 regvalue_tmp_low = ((u32) regvalue);
fast_ua_hw_wr(PGM_RD_MID, SENT_TIME_CNT, regvalue_tmp_high, MASK_1);
fast_ua_hw_wr(PGM_RD_MID, SENT_TIME_CNT - 1, regvalue_tmp_low, MASK_1);
return 0;
}
/**
* set sent_time_reg as regvalue
* @param regvalue sent_time_regvalue value
* @return 0 if success
*/
int sent_set_sent_time_reg(u64 regvalue)
{
u32 regvalue_tmp_high = regvalue>>32;
printf("regvalue tmp high = %lx\n", regvalue_tmp_high);
u32 regvalue_tmp_low = ((u32) regvalue);
printf("regvalue tmp low = %lx\n", regvalue_tmp_low);
fast_ua_hw_wr(PGM_WR_MID, SENT_TIME_REG, regvalue_tmp_high, MASK_1);
fast_ua_hw_wr(PGM_WR_MID, SENT_TIME_REG - 1, regvalue_tmp_low, MASK_1);
return 0;
}
int sent_set_sent_rate_cnt(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(PGM_RD_MID, SENT_RATE_CNT, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_sent_rate_reg(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(PGM_RD_MID, SENT_RATE_REG, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_lat_pkt_cnt(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(PGM_RD_MID, LAT_PKT_CNT, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_lat_pkt_reg(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(PGM_RD_MID, LAT_PKT_REG, regvalue_tmp, MASK_1);
return 0;
}
/**
* set counters to count for total bytes of traffic
* @param regvalue the counter value to be set
* @return 0 if success
*/
int sent_set_sent_bit_cnt(u64 regvalue)
{
u32 regvalue_tmp_high = ((u32) regvalue>>32);
u32 regvalue_tmp_low = ((u32) regvalue);
fast_ua_hw_wr(PGM_RD_MID, SENT_BIT_CNT, regvalue_tmp_high, MASK_1);
fast_ua_hw_wr(PGM_RD_MID, SENT_BIT_CNT - 1, regvalue_tmp_low, MASK_1);
return 0;
}
int sent_set_sent_pkt_cnt(u64 regvalue)
{
u32 regvalue_tmp_high = ((u32) regvalue>>32);
u32 regvalue_tmp_low = ((u32) regvalue);
fast_ua_hw_wr(PGM_RD_MID, SENT_PKT_CNT, regvalue_tmp_high, MASK_1);
fast_ua_hw_wr(PGM_RD_MID, SENT_PKT_CNT - 1, regvalue_tmp_low, MASK_1);
return 0;
}
int sent_set_lat_flag(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(PGM_RD_MID, LAT_FLAG, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_rd_soft_rst(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(PGM_RD_MID, RD_SOFT_RST, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_proto_type(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(SCM_MID, PROTO_TYPE, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_scm_soft_rst(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(SCM_MID, SCM_SOFT_RST, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_n_rtt(u64 regvalue)
{
u32 regvalue_tmp = (u32) regvalue;
fast_ua_hw_wr(SCM_MID, N_RTT, regvalue_tmp, MASK_1);
return 0;
}
int sent_set_scm_bit_cnt(u64 regvalue)
{
u32 regvalue_tmp_high = ((u32) regvalue>>32);
u32 regvalue_tmp_low = ((u32) regvalue);
fast_ua_hw_wr(SCM_MID, SCM_BIT_CNT, regvalue_tmp_high, MASK_1);
fast_ua_hw_wr(SCM_MID, SCM_BIT_CNT - 1, regvalue_tmp_low, MASK_1);
return 0;
}
int sent_set_scm_pkt_cnt(u64 regvalue)
{
u32 regvalue_tmp_high = ((u32) regvalue>>32);
u32 regvalue_tmp_low = ((u32) regvalue);
fast_ua_hw_wr(SCM_MID, SCM_PKT_CNT, regvalue_tmp_high, MASK_1);
fast_ua_hw_wr(SCM_MID, SCM_PKT_CNT - 1, regvalue_tmp_low, MASK_1);
return 0;
}
/*---------------------------------SET REG & COUNTERS----------------------------*/
/*---------------------------------GET REG & COUNTERS----------------------------*/
/**
* get the reg value from sent hw
* @param regvalue reg values that are to be obtained from hw.
* @return 0 if success
*/
int sent_get_sent_time_cnt(u64 *regvalue)
{
u32 regvalue_tmp_high = fast_ua_hw_rd(PGM_WR_MID, SENT_TIME_CNT, MASK_1);
u32 regvalue_tmp_low = fast_ua_hw_rd(PGM_WR_MID, SENT_TIME_CNT - 1, MASK_1);
*regvalue = ((u64)regvalue_tmp_high<<32) + (u64)regvalue_tmp_low;
return 0;
}
int sent_get_sent_time_reg(u64 *regvalue)
{
u32 regvalue_tmp_high = fast_ua_hw_rd(PGM_WR_MID, SENT_TIME_REG, MASK_1);
u32 regvalue_tmp_low = fast_ua_hw_rd(PGM_WR_MID, SENT_TIME_REG - 1, MASK_1);
*regvalue = ((u64)regvalue_tmp_high<<32) + (u64)regvalue_tmp_low;
return 0;
}
int sent_get_sent_rate_cnt(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(PGM_RD_MID, SENT_RATE_CNT, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_sent_rate_reg(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(PGM_RD_MID, SENT_TIME_REG, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_lat_pkt_cnt(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(PGM_RD_MID, LAT_PKT_CNT, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_lat_pkt_reg(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(PGM_RD_MID, LAT_PKT_REG, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_sent_bit_cnt(u64 *regvalue)
{
u32 regvalue_tmp_high = fast_ua_hw_rd(PGM_RD_MID, SENT_BIT_CNT, MASK_1);
u32 regvalue_tmp_low = fast_ua_hw_rd(PGM_RD_MID, SENT_BIT_CNT - 1, MASK_1);
*regvalue = ((u64)regvalue_tmp_high<<32) + (u64)regvalue_tmp_low;
return 0;
}
int sent_get_sent_pkt_cnt(u64 *regvalue)
{
u32 regvalue_tmp_high = fast_ua_hw_rd(PGM_RD_MID, SENT_PKT_CNT, MASK_1);
u32 regvalue_tmp_low = fast_ua_hw_rd(PGM_RD_MID, SENT_PKT_CNT - 1, MASK_1);
*regvalue = ((u64)regvalue_tmp_high<<32) + (u64)regvalue_tmp_low;
return 0;
}
int sent_get_lat_flag(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(PGM_RD_MID, LAT_FLAG, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_rd_soft_rst(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(PGM_RD_MID, RD_SOFT_RST, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_proto_type(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(SCM_MID, PROTO_TYPE, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_scm_soft_rst(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(SCM_MID, SCM_SOFT_RST, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_n_rtt(u64 *regvalue)
{
u32 regvalue_tmp = fast_ua_hw_rd(SCM_MID, N_RTT, MASK_1);
*regvalue = regvalue_tmp;
return 0;
}
int sent_get_scm_bit_cnt(u64 *regvalue)
{
u32 regvalue_tmp_high = fast_ua_hw_rd(SCM_MID, SCM_BIT_CNT, MASK_1);
u32 regvalue_tmp_low = fast_ua_hw_rd(SCM_MID, SCM_BIT_CNT - 1, MASK_1);
*regvalue = ((u64)regvalue_tmp_high<<32) + (u64)regvalue_tmp_low;
return 0;
}
int sent_get_scm_pkt_cnt(u64 *regvalue)
{
u32 regvalue_tmp_high = fast_ua_hw_rd(SCM_MID, SCM_PKT_CNT, MASK_1);
u32 regvalue_tmp_low = fast_ua_hw_rd(SCM_MID, SCM_PKT_CNT - 1, MASK_1);
*regvalue = ((u64)regvalue_tmp_high<<32) + (u64)regvalue_tmp_low;
return 0;
}
/*---------------------------------GET REG & COUNTERS----------------------------*/

Binary file not shown.

@ -0,0 +1,290 @@
#include <fast.h>
#include "include/sent_driver.h"
#include "SentSocket.h"
#define sent_MID 140
#define SCM_MID 7
#define MASK_1 0x0
#define buftime 5
int callback(struct fast_packet *pkt, int pkt_len)
{
printf("/****************************debug1*****************/\n");
print_pkt(pkt, pkt_len);
printf("/****************************debug1*****************/\n");
return 0;
}
void ua_init(u8 mid)
{
int ret = 0;
/*向系统注册自己进程处理报文模块ID为1的所有报文*/
if ((ret = fast_ua_init(mid, callback))) //UA模块实例化(输入参数1:接收模块ID号,输入参数2:接收报文的回调处理函数)
{
perror("fast_ua_init!\n");
exit(ret); //如果初始化失败,则需要打印失败信息,并将程序结束退出!
}
}
int main(int argc, char *argv[])
{
/*socket varriable*/
int server_flag = 0;
char cmd[101];
int server_fd, conn_fd, socket_ret;
struct sockaddr_in cilent;
double return_data[10];
/*obtain sent parameters*/
long long arg_sent_time,
arg_sent_rate, arg_pkt_length, arg_sent_port, proto_type = 0;
if (argc == 2 && strncmp(argv[1], "server", 6) == 0)
{
/*set socket param*/
//int params[10], para_num = 6;
server_fd = createSocket();
//unsigned char pkt[10];
bindSocket(server_fd, 8321);
setListen(server_fd);
conn_fd = acceptConn(server_fd, &cilent);
server_flag = 1;
while (1)
{
usleep(100000);
socket_ret = read(conn_fd, cmd, 9);
if (socket_ret == -1)
continue;
if (strncmp(cmd, "set_parm", 9) == 0)
{
printf("command:%s\n", cmd);
while (read(conn_fd, (char *)&arg_sent_time, sizeof(long long)) == -1)
;
arg_sent_time += 5;
while (read(conn_fd, (char *)&arg_sent_rate, sizeof(long long)) == -1)
;
while (read(conn_fd, (char *)&arg_pkt_length, sizeof(long long)) == -1)
;
while (read(conn_fd, (char *)&arg_sent_port, sizeof(long long)) == -1)
;
//while (read(conn_fd, (char *)&params, para_num * sizeof(int)) == -1);
//while (read(conn_fd, (char *)&pkt, sizeof(unsigned char) * arg_pkt_length) == -1);
break;
}
}
}
else if (argc == 5)
{
sscanf(argv[1], "%lld", &arg_sent_time);
sscanf(argv[2], "%lld", &arg_sent_rate); //this stands for Mbps
sscanf(argv[3], "%lld", &arg_pkt_length);
sscanf(argv[4], "%lld", &arg_sent_port);
}
else
{
printf("Usage1 Server for GUI\n\t:server\n");
printf("Usage2 local test:\n\t:sent_time(s) sent_rate(Mbps), pkt_length(64,1500), sent_port(0,3)\n");
return -1;
}
//arg_sent_rate = 800*arg_pkt_length/arg_sent_rate - arg_pkt_length/16;
//so the users could enter the speed rate from 1% to 100%
arg_sent_rate = (arg_pkt_length + 20) * 80 / arg_sent_rate - arg_pkt_length / 16 - 2 - 2;
if (arg_sent_time < 0 || arg_sent_port > 3 || arg_sent_port < 0 || arg_pkt_length < 60)
{
printf("invalid input!\n");
return -1;
}
/*obtain sent parameters*/
u8 dmid = sent_MID;
/**sent_parameter is used in pgm*/
struct sent_parameter demo_parameter;
struct sent_cnt demo_cnt;
struct sent_cnt *demo_cnt_p = &demo_cnt;
ua_init(sent_MID);
fast_ua_recv();
/**set test parameters*/
//demo_parameter.sent_time = 0x165a0bc00; //about 100 seconds
demo_parameter.sent_time = arg_sent_time * (100000000);
//arg_sent_time=arg_sent_time*(100000000);
//printf("the sending time is %lld", demo_parameter.sent_time);
//demo_parameter.sent_rate = 0x00001000; //about 6.5ms send a pkt
//demo_parameter.sent_rate = (arg_sent_rate>30)?arg_sent_rate:62;
demo_parameter.sent_rate = arg_sent_rate;
//demo_parameter.sent_rate = 0x59c1f1; //about sending 1000 pkts per min
demo_parameter.proto_type = 0x2; //ipv4_udp
/*************no need for these 3 parameters****************/
demo_parameter.lat_pkt = 0;
demo_parameter.lat_flag = 0; //disable latency test
demo_parameter.n_rtt = 0x0004000; //wait about 6.5ms after sending the last pkt.
/*************no need for these 3 parameters****************/
if (sent_set_test_para(demo_parameter))
{
printf("set sent parameter error!\n");
return -1;
}
struct fast_packet *pkt = (struct fast_packet *)malloc(sizeof(struct um_metadata) + arg_pkt_length);
pkt->um.flowID = 3;
pkt->um.seq = 4;
//pkt->um.outport = 1;
pkt->um.outport = arg_sent_port;
/**set priority as 3'b111 to enable sent hw pipeline*/
pkt->um.priority = 7;
pkt->um.dstmid = 1;
pkt->um.pktsrc = 1;
pkt->um.inport = 63;
pkt->um.len = sizeof(struct um_metadata) + arg_pkt_length;
int i;
//construct a packet
pkt->data[0] = 0x11;
pkt->data[1] = 0x22;
pkt->data[2] = 0x33;
pkt->data[3] = 0x44;
pkt->data[4] = 0x55;
pkt->data[5] = 0x66;
pkt->data[6] = 0x00;
pkt->data[7] = 0x21;
pkt->data[8] = 0x85;
pkt->data[9] = 0xc5;
pkt->data[10] = 0x2b;
pkt->data[11] = 0x08;
pkt->data[12] = 0x08;
pkt->data[13] = 0x00;
pkt->data[14] = 0x45;
pkt->data[15] = 0x00;
pkt->data[16] = 0x00;
pkt->data[17] = 0x3c;
pkt->data[18] = 0x79;
pkt->data[19] = 0x19;
pkt->data[20] = 0x00;
pkt->data[21] = 0x00;
pkt->data[22] = 0x40;
pkt->data[23] = 0x01;
pkt->data[24] = 0x7b;
pkt->data[25] = 0xdd;
pkt->data[26] = 0xc0;
pkt->data[27] = 0xa8;
pkt->data[28] = 0x02;
pkt->data[29] = 0x65;
pkt->data[30] = 0xc0;
pkt->data[31] = 0xa8;
pkt->data[32] = 0x02;
pkt->data[33] = 0x15;
//i;
for (i = 34; i < arg_pkt_length; i++)
{
pkt->data[i] = 0xff;
}
//send packet to trigger sent pipeline
sent_pkt_send(pkt, pkt->um.len); //trigger sent to start/
//usleep(demo_parameter.sent_time/100);
/*if(sent_collect_counters(demo_cnt_p)){
printf("test result obtaining error!\n");
return -1;
}*/
u32 time = 0;
u64 pre_time = 0, cur_time = 0, pre_bits = 0, cur_bits = 0;
while (time < arg_sent_time * 10)
{
time += 1;
if (time < 50)
{
usleep(100000);
continue;
}
if (sent_collect_counters(demo_cnt_p))
{
printf("test result obtaining error!\n");
return -1;
}
if (demo_cnt.test_time == 0)
{
if (server_flag) //end to cilent
{
return_data[2] = -1;
return_data[0] = -1;
return_data[1] = -1;
return_data[3] = -1;
write(conn_fd, (char *)&return_data, sizeof(double) * 4);
}
break;
}
/*print*/
printf("-----------------------***sent COUNTERS***-----------------------\n");
demo_cnt.sent_bits = demo_cnt.sent_bits - demo_cnt.sent_pkts * 16;
demo_cnt.recv_bits = demo_cnt.recv_bits - demo_cnt.recv_pkts * 32;
printf("Test Time:\t%llu *10ns\n", demo_cnt.test_time);
printf("Sent Pkt Bytes:\t%llu\t Bytes\n", demo_cnt.sent_bits);
printf("Sent Pkt Num:\t%llu\t\n", demo_cnt.sent_pkts);
printf("Sent Pkt Rate:\t%llf\tKpps\n", (double)(demo_cnt.sent_pkts * 100000.0 / demo_cnt.test_time));
printf("Sent Bit Rate:\t%llf\tMbps\n", (double)(demo_cnt.sent_bits * 100.0 / demo_cnt.test_time));
printf("Recv Pkt Bytes:\t%llu\t Bytes\n", demo_cnt.recv_bits);
printf("Recv Pkt Num:\t%llu\n", demo_cnt.recv_pkts);
printf("Recv Pkt Rate:\t%llf\tKpps\n", (double)(demo_cnt.recv_pkts * 100000.0 / demo_cnt.test_time));
printf("Recv Bit Rate:\t%llf\tMbps\n", (double)((demo_cnt.recv_bits * 100.0) / demo_cnt.test_time));
printf("-----------------------***sent COUNTERS***-----------------------\n");
//sent_print_counters(demo_cnt, arg_pkt_length);
//time = demo_cnt_p->test_time;
double latency = 0;
for (i = 0; i <= 1023; i += 100)
{
latency += fast_ua_hw_rd(SCM_MID, SCM_RAM_ADDR + i, MASK_1);
//usleep(1);
}
latency /= 1100000;
if (server_flag)
{
cur_time = demo_cnt.test_time - pre_time;
pre_time = demo_cnt.test_time;
cur_bits = demo_cnt.recv_bits - pre_bits;
return_data[0] = (double)(cur_bits * 100.0) / cur_time; //intime throughoutput
pre_bits = demo_cnt.recv_bits;
return_data[2] = ((double)(abs(demo_cnt.sent_pkts - demo_cnt.recv_pkts))) / demo_cnt.sent_pkts * 100; //PacketLoss
return_data[1] = latency;
return_data[3] = (double)((demo_cnt.recv_bits * 100.0) / demo_cnt.test_time); //avarger time throughoutput
write(conn_fd, (char *)&return_data, sizeof(double) * 4);
}
usleep(100000);
//usleep((10000000-time%10000000)*100);
}
/**only jump out of while if test is finished*/
while (sent_check_finish() != 0)
{
printf("the final is %d\n", 1);
sleep(1);
}
printf("test finished\n");
/**reset sent to enble next test round*/
sent_rst();
/**write letancy into file*/
import_latency_to_txt(arg_pkt_length);
closeSocket(server_fd);
closeSocket(conn_fd);
return 0;
}

Binary file not shown.

@ -1,2 +0,0 @@
#Wed Nov 03 08:19:11 CST 2021
gradle.version=7.2

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
</component>
</project>

@ -1,563 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="false" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DataExportManager">
<export-instructions>
<create-header value="true" />
<friendly-headers value="false" />
<quote-values-containing-separator value="true" />
<quote-all-values value="false" />
<value-separator value="" />
<file-name value="" />
<file-location value="" />
<scope value="GLOBAL" />
<destination value="FILE" />
<format value="EXCEL" />
<charset value="GBK" />
</export-instructions>
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes>
<connection connection-id="98fd455f-5028-4c8f-be18-aaecb66cf115">
<schema name="main" object-types="table, view, constraint, index, column, dataset trigger" />
</connection>
</loaded-nodes>
</component>
<component name="DBNavigator.Project.DatabaseConsoleManager">
<connection id="98fd455f-5028-4c8f-be18-aaecb66cf115">
<console name="Connection" type="STANDARD" schema="main" session="Main" />
</connection>
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.DatabaseSessionManager">
<connection id="98fd455f-5028-4c8f-be18-aaecb66cf115" />
</component>
<component name="DBNavigator.Project.DatasetFilterManager">
<filter-actions connection-id="98fd455f-5028-4c8f-be18-aaecb66cf115" dataset="main.lonote" active-filter-id="9cbbba4f-19d2-434d-a03f-a8810f284856">
<filter id="9cbbba4f-19d2-434d-a03f-a8810f284856" name="Filter 1" temporary="false" custom-name="false" type="basic" join-type="AND" />
</filter-actions>
</component>
<component name="DBNavigator.Project.EditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.ExecutionManager">
<retain-sticky-names value="false" />
</component>
<component name="DBNavigator.Project.MethodExecutionManager">
<method-browser />
<execution-history>
<group-entries value="true" />
<execution-inputs />
</execution-history>
<argument-values-cache />
</component>
<component name="DBNavigator.Project.ObjectDependencyManager">
<last-used-dependency-type value="INCOMING" />
</component>
<component name="DBNavigator.Project.ObjectQuickFilterManager">
<last-used-operator value="EQUAL" />
<filters />
</component>
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
<recently-used-interfaces />
</component>
<component name="DBNavigator.Project.Settings">
<connections>
<connection id="98fd455f-5028-4c8f-be18-aaecb66cf115" active="true">
<database>
<name value="Connection" />
<description value="" />
<database-type value="SQLITE" />
<config-type value="BASIC" />
<database-version value="3.3" />
<driver-source value="BUILTIN" />
<driver-library value="" />
<driver value="" />
<url-type value="FILE" />
<host value="" />
<port value="" />
<database value="" />
<files>
<file path="E:\note.db" schema="main" />
</files>
<type value="NONE" />
<user value="" />
<deprecated-pwd value="" />
</database>
<properties>
<auto-commit value="false" />
</properties>
<ssh-settings>
<active value="false" />
<proxy-host value="" />
<proxy-port value="22" />
<proxy-user value="" />
<deprecated-proxy-pwd value="" />
<auth-type value="PASSWORD" />
<key-file value="" />
<key-passphrase value="" />
</ssh-settings>
<ssl-settings>
<active value="false" />
<certificate-authority-file value="" />
<client-certificate-file value="" />
<client-key-file value="" />
</ssl-settings>
<details>
<charset value="UTF-8" />
<session-management value="true" />
<ddl-file-binding value="true" />
<database-logging value="false" />
<connect-automatically value="true" />
<restore-workspace value="true" />
<restore-workspace-deep value="true" />
<environment-type value="default" />
<connectivity-timeout value="5" />
<idle-time-to-disconnect value="30" />
<idle-time-to-disconnect-pool value="5" />
<credential-expiry-time value="10" />
<max-connection-pool-size value="7" />
<alternative-statement-delimiter value="" />
</details>
<object-filters hide-empty-schemas="false" hide-pseudo-columns="false">
<object-type-filter use-master-settings="true">
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
<object-name-filters />
</object-filters>
</connection>
</connections>
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<tracking-columns>
<columnNames value="" />
<visible value="true" />
<editable value="false" />
</tracking-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="Groovy" enabled="true" />
<content-type name="AIDL" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Manifest" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="ASK" />
<use-generic-runners value="true" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
<component name="DBNavigator.Project.StatementExecutionManager">
<execution-variables />
</component>
</project>

@ -1,2 +0,0 @@
android.enableJetifier=true
android.useAndroidX=true

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://dl.bintray.com/jetbrains/anko" />
</remote-repository>
<remote-repository>
<option name="id" value="maven2" />
<option name="name" value="maven2" />
<option name="url" value="https://maven.google.com" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/Notes-master1/app/src/main/res/layout/account_dialog_title.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/activity_splash.xml" value="0.18206521739130435" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/add_account_text.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/app_bar_main.xml" value="0.165" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/datetime_picker.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/dialog_edit_text.xml" value="0.19895833333333332" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/nav_header_main.xml" value="0.1337386018237082" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/note_edit.xml" value="0.17755825734549138" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/note_edit_list_item.xml" value="0.1757852077001013" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/note_item.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/note_list.xml" value="0.165" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/note_list_dropdown_menu.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/note_list_footer.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/layout/settings_header.xml" value="0.1693840579710145" />
<entry key="..\:/Notes-master1/app/src/main/res/menu/activity_main_drawer.xml" value="0.275" />
<entry key="..\:/Notes-master1/app/src/main/res/menu/background.xml" value="0.275" />
<entry key="..\:/Notes-master1/app/src/main/res/menu/call_record_folder.xml" value="0.19895833333333332" />
<entry key="..\:/Notes-master1/app/src/main/res/menu/note_list.xml" value="0.19895833333333332" />
<entry key="..\:/Notes-master1/app/src/main/res/menu/note_list_options.xml" value="0.14351851851851852" />
<entry key="..\:/Notes-master1/app/src/main/res/menu/sub_folder.xml" value="0.19895833333333332" />
<entry key="..\:/SDK/platforms/android-30/data/res/layout-xlarge/activity_list.xml" value="0.16" />
<entry key="..\:/SDK/platforms/android-30/data/res/layout/alert_dialog.xml" value="0.15729166666666666" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/drawable/new_note.xml" value="0.1734375" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/account_dialog_title.xml" value="0.10914855072463768" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/add_account_text.xml" value="0.20885416666666667" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/app_bar_main.xml" value="0.20885416666666667" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/datetime_picker.xml" value="0.20885416666666667" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/dialog_add_secret.xml" value="0.1" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/dialog_delete_senote.xml" value="0.20520833333333333" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/dialog_edit_text.xml" value="0.14356884057971014" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/dialog_input_passwd.xml" value="0.15729166666666666" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/dialog_login.xml" value="0.36614583333333334" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/dialog_register.xml" value="0.36614583333333334" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/nav_header_main.xml" value="0.20520833333333333" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/note_edit.xml" value="0.33" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/note_edit_list_item.xml" value="0.125" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/note_item.xml" value="0.20520833333333333" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/layout/note_list.xml" value="0.15729166666666666" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/menu/activity_main_drawer.xml" value="0.20520833333333333" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/menu/call_note_edit.xml" value="0.1640625" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/menu/note_list.xml" value="0.20520833333333333" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/menu/sub_folder.xml" value="0.20520833333333333" />
<entry key="..\:/git/xcr_weihu/src/Notes-master1/app/src/main/res/xml/file_paths.xml" value="0.17755825734549138" />
<entry key="..\:/git/xcr_weihu_dev/src/Notes-master1/app/src/main/res/layout/note_list.xml" value="0.17755825734549138" />
<entry key="..\:/git/xcr_weihu_dev/src/Notes-master1/app/src/main/res/menu/note_list.xml" value="0.2518518518518518" />
<entry key="..\:/xcr_weihu - improve/src/Notes-master1/app/src/main/res/layout/activity_login.xml" value="0.109375" />
<entry key="..\:/xcr_weihu - improve/src/Notes-master1/app/src/main/res/layout/add_account_text.xml" value="0.109375" />
<entry key="..\:/xcr_weihu - improve/src/Notes-master1/app/src/main/res/menu/note_edit.xml" value="0.2" />
</map>
</option>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
</project>

@ -1,25 +0,0 @@
V java:S125"<This block of commented-out lines of code should be removed.(Í<C38D>¸ýÿÿÿÿ

java:S3008""eRename this field "GTASK_SYNC_NOTIFICATION_ID" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ëíÅÍúÿÿÿÿ
L
java:S1874 "1Remove this use of "AsyncTask"; it is deprecated.(¯ÚÔËúÿÿÿÿ
N
java:S3878="8Remove this array creation and simply pass the elements.(‘Àߎ
M
java:S1874="7Remove this use of "publishProgress"; it is deprecated.(‘Àߎ
O
java:S1874C"4Remove this use of "Notification"; it is deprecated.(äÉè‰ýÿÿÿÿ
K
java:S1874E"0Remove this use of "defaults"; it is deprecated.(±æÝÈûÿÿÿÿ
V java:S125Q"<This block of commented-out lines of code should be removed.(ëœôùþÿÿÿÿ
J
java:S1874R"/Remove this use of "Builder"; it is deprecated.(ÉŽˆÁüÿÿÿÿ
B
java:S1874Z",Remove this use of "icon"; it is deprecated.(„Éöø
e
java:S1874f"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(ë•·ÿÿÿÿÿ
e
java:S1874n"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(÷ችûÿÿÿÿ
>
java:S1604|"(Make this anonymous inner class a lambda(Éãî

@ -1,2 +0,0 @@
a java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(<28>

@ -1,63 +0,0 @@
w
java:S1192<"\Define a constant instead of duplicating this literal " TEXT NOT NULL DEFAULT ''," 10 times.(ƒþÞ¿ùÿÿÿÿ
c
java:S1192d"HDefine a constant instead of duplicating this literal " BEGIN " 8 times.(ÕêïŠþÿÿÿÿ
g
java:S1192£"KDefine a constant instead of duplicating this literal " WHEN old." 4 times.(šì÷öþÿÿÿÿ
i
java:S11923"NDefine a constant instead of duplicating this literal "CREATE TABLE " 4 times.(ÜΧ­þÿÿÿÿ
b
java:S1192s"GDefine a constant instead of duplicating this literal "=old." 12 times.(”»ÎÔüÿÿÿÿ
d
java:S1192"HDefine a constant instead of duplicating this literal " BEGIN" 12 times.(ÕêïŠþÿÿÿÿ
b
java:S1192t"GDefine a constant instead of duplicating this literal " AND " 4 times.(â¿Å†øÿÿÿÿ
t
java:S11925"^Define a constant instead of duplicating this literal " INTEGER NOT NULL DEFAULT 0," 28 times.(çÀœª
e
java:S1192¾"ODefine a constant instead of duplicating this literal " DELETE FROM " 4 times.(”Ѿg
`
java:S1192g"JDefine a constant instead of duplicating this literal " WHERE " 16 times.(Øëž°
e
java:S1192S"JDefine a constant instead of duplicating this literal " INTEGER," 4 times.(ଉ†þÿÿÿÿ
s
java:S1192<18>"\Define a constant instead of duplicating this literal " INTEGER NOT NULL DEFAULT 0" 3 times.(”€æ†
m
java:S1192c"RDefine a constant instead of duplicating this literal " AFTER UPDATE OF " 4 times.(™†±¸ýÿÿÿÿ
]
java:S1192g"GDefine a constant instead of duplicating this literal "=new." 12 times.(Øëž°
i
java:S1192"MDefine a constant instead of duplicating this literal " ADD COLUMN " 6 times.(ÔäúÊýÿÿÿÿ
h
java:S1192ˆ"RDefine a constant instead of duplicating this literal " AFTER DELETE ON " 6 times.(“áâB
n
java:S1192¢"RDefine a constant instead of duplicating this literal " AFTER UPDATE ON " 4 times.(ÏïÜŸùÿÿÿÿ
f
java:S1192¿"JDefine a constant instead of duplicating this literal " WHERE " 4 times.( –¢Ïøÿÿÿÿ
i
java:S1192"MDefine a constant instead of duplicating this literal "ALTER TABLE " 6 times.(ÔäúÊýÿÿÿÿ
m
java:S1192|"RDefine a constant instead of duplicating this literal " AFTER INSERT ON " 4 times.(ÈœÐÐûÿÿÿÿ
d
java:S1192f"IDefine a constant instead of duplicating this literal " SET " 16 times.(Õ÷Ë“üÿÿÿÿ
a
java:S1192e"KDefine a constant instead of duplicating this literal " UPDATE " 16 times.(ìó¥Ä
o
java:S1192H"ZDefine a constant instead of duplicating this literal " TEXT NOT NULL DEFAULT ''" 6 times.(«ÛÆ]
b
java:S1192"KDefine a constant instead of duplicating this literal " WHEN new." 4 times.(õÄô¬
l
java:S11924"VDefine a constant instead of duplicating this literal " INTEGER PRIMARY KEY," 4 times.(ܺóà
<EFBFBD>
java:S11928"yDefine a constant instead of duplicating this literal " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," 8 times.(˜›£·
Y
java:S1214#"CMove constants defined in this interfaces to another class or enum.(áÅÔö
Z
java:S1854ð">Remove this useless assignment to local variable "oldVersion".(Úã—Üþÿÿÿÿ
d java:S100»"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ŒåÌÑ
d java:S100Í"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¢ï„ô
X
java:S1144»"ARemove this unused private "LO_reCreateNoteTableTriggers" method.(ŒåÌÑ
X
java:S1144Í"ARemove this unused private "LO_reCreateDataTableTriggers" method.(¢ï„ô

@ -1,2 +0,0 @@
b java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(–¿ÖÜ

@ -1,14 +0,0 @@
h java:S100("NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¦Ÿ¦×ýÿÿÿÿ
L
java:S1874="1Remove this use of "setButton"; it is deprecated.(¥<>¤°ûÿÿÿÿ
H
java:S1874>"2Remove this use of "setButton2"; it is deprecated.(ÇÂá’
x
java:S3923P"]This conditional operation returns the same value whether the condition is "true" or "false".(Ýç®Üÿÿÿÿÿ
P
java:S1874P"5Remove this use of "FORMAT_24HOUR"; it is deprecated.(Ýç®Üÿÿÿÿÿ
P
java:S1874P"5Remove this use of "FORMAT_24HOUR"; it is deprecated.(Ýç®Üÿÿÿÿÿ
>
java:S1604/"(Make this anonymous inner class a lambda(í˽ý

@ -1,3 +0,0 @@
O
java:S59932"9Change the visibility of this constructor to "protected".(»Õí©

@ -1,29 +0,0 @@
X
java:S18747"=Remove this use of "FLAG_SHOW_WHEN_LOCKED"; it is deprecated.(÷±µÁúÿÿÿÿ
Q
java:S1874;";Remove this use of "FLAG_TURN_SCREEN_ON"; it is deprecated.(ƒìýè
Z
java:S1874="?Remove this use of "FLAG_LAYOUT_INSET_DECOR"; it is deprecated.(‹”‡Ñúÿÿÿÿ
H
java:S1874X"2Remove this use of "isScreenOn"; it is deprecated.(¤® ²
O
java:S1874b":Remove this use of "setAudioStreamType"; it is deprecated.(¡Ìé0
U
java:S1874d":Remove this use of "setAudioStreamType"; it is deprecated.(†Å¨ªùÿÿÿÿ
`
java:S2147n"ECombine this catch with the one at line 107, which has the same body.(ÿëÛßúÿÿÿÿ
[
java:S2147q"ECombine this catch with the one at line 107, which has the same body.(‚ùïÄ
[
java:S2147t"ECombine this catch with the one at line 107, which has the same body.(ï­£Ä
M
java:S1135l"2Complete the task associated to this TODO comment.(ÕÌ<C395>®þÿÿÿÿ
M
java:S1135o"2Complete the task associated to this TODO comment.(ÕÌ<C395>®þÿÿÿÿ
M
java:S1135r"2Complete the task associated to this TODO comment.(ÕÌ<C395>®þÿÿÿÿ
M
java:S1135u"2Complete the task associated to this TODO comment.(ÕÌ<C395>®þÿÿÿÿ
g
java:S1301"KReplace this "switch" statement by "if" statements to increase readability.(öÛ«°þÿÿÿÿ

@ -1,117 +0,0 @@
T
java:S1874K"9Remove this use of "DefaultHttpClient"; it is deprecated.(믥ìþÿÿÿÿ
H
java:S1874ç"2Remove this use of "HttpParams"; it is deprecated.(ŸÅE
M
java:S1874ç"7Remove this use of "BasicHttpParams"; it is deprecated.(ŸÅE
X
java:S1874è"<Remove this use of "HttpConnectionParams"; it is deprecated.(­Ú¬Ùùÿÿÿÿ
X
java:S1874è"<Remove this use of "setConnectionTimeout"; it is deprecated.(­Ú¬Ùùÿÿÿÿ
X
java:S1874é"<Remove this use of "HttpConnectionParams"; it is deprecated.(åÙµÌûÿÿÿÿ
P
java:S1874é"4Remove this use of "setSoTimeout"; it is deprecated.(åÙµÌûÿÿÿÿ
O
java:S1874ê"9Remove this use of "DefaultHttpClient"; it is deprecated.(ÛÔÇ/
T
java:S1874ë"8Remove this use of "BasicCookieStore"; it is deprecated.(º„˜³øÿÿÿÿ
T
java:S1874ë"8Remove this use of "BasicCookieStore"; it is deprecated.(º„˜³øÿÿÿÿ
L
java:S1874ì"6Remove this use of "setCookieStore"; it is deprecated.(Žä•6
V
java:S1874í":Remove this use of "HttpProtocolParams"; it is deprecated.(Õêøÿÿÿÿÿ
X
java:S1874í"<Remove this use of "setUseExpectContinue"; it is deprecated.(Õêøÿÿÿÿÿ
M
java:S1874í"1Remove this use of "getParams"; it is deprecated.(Õêøÿÿÿÿÿ
F
java:S1874ò"/Remove this use of "HttpGet"; it is deprecated.(<28>ÿŽ¡
F
java:S1874ò"/Remove this use of "HttpGet"; it is deprecated.(<28>ÿŽ¡
P
java:S1874ó"4Remove this use of "HttpResponse"; it is deprecated.(Òø±¾þÿÿÿÿ
F
java:S1874ô"/Remove this use of "execute"; it is deprecated.(œä¯ª
J
java:S1874÷".Remove this use of "Cookie"; it is deprecated.(Жí˜ÿÿÿÿÿ
R
java:S1874÷"6Remove this use of "getCookieStore"; it is deprecated.(Жí˜ÿÿÿÿÿ
N
java:S1874÷"2Remove this use of "getCookies"; it is deprecated.(Жí˜ÿÿÿÿÿ
J
java:S1874ù".Remove this use of "Cookie"; it is deprecated.(<28>èý¯ûÿÿÿÿ
F
java:S1874ú"/Remove this use of "getName"; it is deprecated.(æëü 
H
java:S1874ƒ"1Remove this use of "getEntity"; it is deprecated.(ѽ›è
L
java:S1874Ÿ"0Remove this use of "HttpPost"; it is deprecated.(÷îäÐøÿÿÿÿ
L
java:S1874 "0Remove this use of "HttpPost"; it is deprecated.(‹äÏÒÿÿÿÿÿ
L
java:S1874 "0Remove this use of "HttpPost"; it is deprecated.(‹äÏÒÿÿÿÿÿ
M
java:S1874¡"1Remove this use of "setHeader"; it is deprecated.(†€‡ïúÿÿÿÿ
H
java:S1874¢"1Remove this use of "setHeader"; it is deprecated.(Þûå®
I
java:S1874¦"2Remove this use of "HttpEntity"; it is deprecated.(Û…­ñ
V
java:S1874¨":Remove this use of "getContentEncoding"; it is deprecated.(ëãèÉýÿÿÿÿ
V
java:S1874©":Remove this use of "getContentEncoding"; it is deprecated.(<28>—¯Üýÿÿÿÿ
L
java:S1874©"0Remove this use of "getValue"; it is deprecated.(<28>—¯Üýÿÿÿÿ
N
java:S1874­"2Remove this use of "getContent"; it is deprecated.(ý˜Çöüÿÿÿÿ
N
java:S1874¯"2Remove this use of "getContent"; it is deprecated.(<28>±Š¦ûÿÿÿÿ
I
java:S1874²"2Remove this use of "getContent"; it is deprecated.(øŒËñ
F
java:S2093µ"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ
G
java:S1874Ì"0Remove this use of "HttpPost"; it is deprecated.(ê ¶É
\
java:S2147Ü"ECombine this catch with the one at line 344, which has the same body.(ï­£Ä
V
java:S1874Î":Remove this use of "BasicNameValuePair"; it is deprecated.(æå<C3A6>„þÿÿÿÿ
V
java:S1874Î":Remove this use of "BasicNameValuePair"; it is deprecated.(æå<C3A6>„þÿÿÿÿ
V
java:S1874Ï":Remove this use of "BasicNameValuePair"; it is deprecated.(ø³®ñýÿÿÿÿ
S
java:S1874Ð"<Remove this use of "UrlEncodedFormEntity"; it is deprecated.(«„¿Œ
S
java:S1874Ð"<Remove this use of "UrlEncodedFormEntity"; it is deprecated.(«„¿Œ
M
java:S1874Ñ"1Remove this use of "setEntity"; it is deprecated.(èæ¡…üÿÿÿÿ
P
java:S1874Ô"4Remove this use of "HttpResponse"; it is deprecated.(¬±ó<C2B1>ûÿÿÿÿ
K
java:S1874Ô"/Remove this use of "execute"; it is deprecated.(¬±ó<C2B1>ûÿÿÿÿ
H
java:S1874Õ"1Remove this use of "getEntity"; it is deprecated.(¯ºÐ‡
[
java:S1874Ø"?Remove this use of "ClientProtocolException"; it is deprecated.(‡¤“Óûÿÿÿÿ
\
java:S2147"ECombine this catch with the one at line 535, which has the same body.(ï­£Ä
F
java:S1874"/Remove this use of "HttpGet"; it is deprecated.(”ëÚê
F
java:S1874"/Remove this use of "HttpGet"; it is deprecated.(”ëÚê
P
java:S1874ˆ"4Remove this use of "HttpResponse"; it is deprecated.(Òø±¾þÿÿÿÿ
F
java:S1874"/Remove this use of "execute"; it is deprecated.(œä¯ª
H
java:S1874Œ"1Remove this use of "getEntity"; it is deprecated.(ѽ›è
[
java:S1874"?Remove this use of "ClientProtocolException"; it is deprecated.(‡¤“Óûÿÿÿÿ
u
java:S2293Î"YReplace the type specification in this constructor call with the diamond operator ("<>").(æå<C3A6>„þÿÿÿÿ
a
java:S2184s"FCast one of the operands of this multiplication operation to a "long".(⣛Úùÿÿÿÿ

@ -1,14 +0,0 @@
M
java:S1135c"2Complete the task associated to this TODO comment.(ƒŠ® úÿÿÿÿ
< java:S131h""Add a default case to this switch.(ãÁð™øÿÿÿÿ
^
java:S1126­"BReplace this if-then-else statement by a single method invocation.(‚å¿¥ûÿÿÿÿ
P
java:S2864Â"4Iterate over the "entrySet" instead of the "keySet".(ΚŸ<C5A1>ûÿÿÿÿ
o
java:S22931"YReplace the type specification in this constructor call with the diamond operator ("<>").(§þ¢¾
D
java:S1604Î"(Make this anonymous inner class a lambda(¯<>Àžÿÿÿÿÿ
f
java:S1301h"KReplace this "switch" statement by "if" statements to increase readability.(ãÁð™øÿÿÿÿ

@ -1,5 +0,0 @@
3
java:S2386$"Make this member "protected".(óð<C3B3>ß
h
java:S3776H"RRefactor this method to reduce its Cognitive Complexity from 19 to the 15 allowed.(ʃëï

@ -1,12 +0,0 @@
m
java:S37766"RRefactor this method to reduce its Cognitive Complexity from 21 to the 15 allowed.(üßú–ùÿÿÿÿ
O
java:S1874B"9Remove this use of "setTextAppearance"; it is deprecated.(¤ñÝ×
O
java:S1874I"9Remove this use of "setTextAppearance"; it is deprecated.(Á†<C381>ö
O
java:S1874S"9Remove this use of "setTextAppearance"; it is deprecated.(¤ñÝ×
f java:S117f"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(æëÐÉ
f java:S117k"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ã·”Ÿ
f java:S117l"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¬Ã•»

@ -1,33 +0,0 @@
C
java:S1604,"(Make this anonymous inner class a lambda(ꢛýýÿÿÿÿ
C
java:S16042"(Make this anonymous inner class a lambda(節<C2AF>ùÿÿÿÿ
p
java:S1450""URemove the "cancel" field and declare it as a local variable in the relevant methods.(܇žÀÿÿÿÿÿ
j
java:S1450!"TRemove the "login" field and declare it as a local variable in the relevant methods.(õ¸€§
7
java:S11160"Remove this empty statement.(ôŸŽìúÿÿÿÿ
g
java:S1871@"LThis branch's code block is the same as the block for the branch on line 54.(Îê¡•ÿÿÿÿÿ
Q
java:S18747"6Remove this use of "ProgressDialog"; it is deprecated.(¬Á¶—þÿÿÿÿ
Q
java:S18747"6Remove this use of "ProgressDialog"; it is deprecated.(¬Á¶—þÿÿÿÿ
M
java:S18749"2Remove this use of "setMessage"; it is deprecated.(ñËÄÝÿÿÿÿÿ
7
java:S1116;"Remove this empty statement.(óÓʤúÿÿÿÿ
Q
java:S1874A"6Remove this use of "ProgressDialog"; it is deprecated.(¬Á¶—þÿÿÿÿ
Q
java:S1874A"6Remove this use of "ProgressDialog"; it is deprecated.(¬Á¶—þÿÿÿÿ
M
java:S1874C"2Remove this use of "setMessage"; it is deprecated.(ñËÄÝÿÿÿÿÿ
7
java:S1116E"Remove this empty statement.(óÓʤúÿÿÿÿ
7
java:S1116Q"Remove this empty statement.(ôŸŽìúÿÿÿÿ
7
java:S1116R"Remove this empty statement.(ôŸŽìúÿÿÿÿ

@ -1,24 +0,0 @@
i
java:S1192œ"MDefine a constant instead of duplicating this literal "Unknown URI " 4 times.(¶ª¦þüÿÿÿÿ
g java:S117µ"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(‰©‰<C2A9>
l java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(˜ˆ<CB9C>Þÿÿÿÿÿ
X
java:S4973¸"<Strings and Boxed types should be compared using "equals()".(áÿÿ¾úÿÿÿÿ
X
java:S4973¸"<Strings and Boxed types should be compared using "equals()".(áÿÿ¾úÿÿÿÿ
M
java:S1153ç"1Directly append the argument of String.valueOf().(œËߦýÿÿÿÿ

java:S3008Z"eRename this field "NOTES_SNIPPET_SEARCH_QUERY" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Èò<C388>ƒùÿÿÿÿ
i
java:S3776¥"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(ëÒ<C3AB>Ä
_
java:S1659§"CDeclare "noteId" and all following declarations on a separate line.(Ÿàؘøÿÿÿÿ
T
java:S2130ÿ"8Use "Long.parseLong" for this string-to-long conversion.(•ãÿ¬ÿÿÿÿÿ
W java:S125œ"<This block of commented-out lines of code should be removed.(ÓðáÖÿÿÿÿÿ
N
java:S1135ö"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
i java:S100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¢ã›íüÿÿÿÿ
i java:S100¤"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(÷¾€©üÿÿÿÿ

@ -1,11 +0,0 @@
V
java:S3398ß"?Move this method into the anonymous class declared at line 118.( šåš
>
java:S1604C"(Make this anonymous inner class a lambda(ñ×®è
C
java:S1604L"(Make this anonymous inner class a lambda(Ò´Ñ<C2B4>ÿÿÿÿÿ
C
java:S1604v"(Make this anonymous inner class a lambda(×ÉÑ‘úÿÿÿÿ
?
java:S1604"(Make this anonymous inner class a lambda(À¸èž

@ -1,30 +0,0 @@
]
java:S2184Æ"ACast one of the operands of this division operation to a "float".(žÿó˜úÿÿÿÿ
]
java:S2184Ç"ACast one of the operands of this division operation to a "float".(˜ô¡±ùÿÿÿÿ
[
java:S2259`"@A "NullPointerException" could be thrown; "bm" is nullable here.(—Ȳ±ÿÿÿÿÿ
N
java:S2589"7Remove this expression which always evaluates to "true"(<28>™ÜÎ
P
java:S1118"":Add a private constructor to hide the implicit public one.(ò’çÎ
M
java:S1854."7Remove this useless assignment to local variable "dim".(ö<>íÊ
V java:S899§";Do something with the "boolean" value returned by "delete".(²Œ­<C592>ûÿÿÿÿ
j
java:S4042§"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(²Œ­<C592>ûÿÿÿÿ
b
java:S1874°"FRemove this use of "ACTION_MEDIA_SCANNER_SCAN_FILE"; it is deprecated.(€×¢Íúÿÿÿÿ
R java:S125º"<This block of commented-out lines of code should be removed.(¿ÍØÁ
R java:S125Ì"<This block of commented-out lines of code should be removed.(Œ<>¬Ì
G
java:S1874Ú"0Remove this use of "inDither"; it is deprecated.(Ô¾šé
V
java:S1854ó":Remove this useless assignment to local variable "bitmap".(æ<>ãñüÿÿÿÿ
V
java:S1854ž":Remove this useless assignment to local variable "bitmap".(Ã÷”¸ûÿÿÿÿ
=
java:S1905°"&Remove this unnecessary cast to "int".(¸¡Ð«
=
java:S1905±"&Remove this unnecessary cast to "int".(À‡<C380>Ä

@ -1,2 +0,0 @@
K xml:S55940"1Implement permissions on this exported component.(ˆ©…»ùÿÿÿÿ

@ -1,5 +0,0 @@
2
java:S2386+"Make this member "protected".(¤íÂX
n
java:S3776"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(®‘‡§øÿÿÿÿ

@ -1,11 +0,0 @@
P
java:S1118":Add a private constructor to hide the implicit public one.(ãÛÒÛ
q
java:S3252!"VUse static access with "android.provider.ContactsContract$DataColumns" for "MIMETYPE".(‡ù¯–ÿÿÿÿÿ
r
java:S3252""\Use static access with "android.provider.ContactsContract$DataColumns" for "RAW_CONTACT_ID".(Ðäç÷
t
java:S32524"^Use static access with "android.provider.ContactsContract$ContactsColumns" for "DISPLAY_NAME".(Úÿ†Ø
t
java:S2293)"YReplace the type specification in this constructor call with the diamond operator ("<>").(<28>½ñäÿÿÿÿÿ

@ -1,20 +0,0 @@
k java:S116w"VRename this field "TEXT_FORMAT" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ñ›–¼
i
java:S3776¨"RRefactor this method to reduce its Cognitive Complexity from 27 to the 15 allowed.(œÃÁí
h
java:S3776Ý"RRefactor this method to reduce its Cognitive Complexity from 23 to the 15 allowed.(ì´ê
\
java:S2147±"ECombine this catch with the one at line 302, which has the same body.(ß<>È´
F
java:S2093«"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ
Y
java:S1874È"CRemove this use of "getExternalStorageDirectory"; it is deprecated.(?
\
java:S2147ß"ECombine this catch with the one at line 349, which has the same body.(ï­£Ä
C
java:S1125×"'Remove the unnecessary boolean literal.(ã°²èþÿÿÿÿ
9
java:S3398H"#Move this method into "TextExport".(…´<C2B4>
?
java:S3398Æ"#Move this method into "TextExport".(¨ä¿ÿýÿÿÿÿ

@ -1,37 +0,0 @@
o
java:S2293]"YReplace the type specification in this constructor call with the diamond operator ("<>").(²¿›ž
t
java:S2293^"YReplace the type specification in this constructor call with the diamond operator ("<>").(‘´ÂÞþÿÿÿÿ
t
java:S2293_"YReplace the type specification in this constructor call with the diamond operator ("<>").(±€šˆþÿÿÿÿ
o
java:S2293a"YReplace the type specification in this constructor call with the diamond operator ("<>").(ÈüùÌ
t
java:S2293b"YReplace the type specification in this constructor call with the diamond operator ("<>").(ðˆâ³ùÿÿÿÿ
t
java:S2293c"YReplace the type specification in this constructor call with the diamond operator ("<>").(ž’»Ðýÿÿÿÿ
]
java:S1192©"FDefine a constant instead of duplicating this literal " DESC" 3 times.(©ÍÔ±
K
java:S1066ˆ"/Merge this if statement with the enclosing one.(¾¶†–þÿÿÿÿ
K
java:S1066Ö"/Merge this if statement with the enclosing one.(˼֓ùÿÿÿÿ
S
java:S2589"7Remove this expression which always evaluates to "true"(ë<>½ïûÿÿÿÿ
i
java:S3776«"RRefactor this method to reduce its Cognitive Complexity from 29 to the 15 allowed.(«Ã¾á
I
java:S1905Á"-Remove this unnecessary cast to "JSONObject".(ï½€—ýÿÿÿÿ
C
java:S1905ç"-Remove this unnecessary cast to "JSONObject".(Ø›¶
i
java:S3776ú"RRefactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed.(ðúæŠ
n
java:S3776ã"RRefactor this method to reduce its Cognitive Complexity from 41 to the 15 allowed.(…˰±ýÿÿÿÿ
n
java:S3776"RRefactor this method to reduce its Cognitive Complexity from 34 to the 15 allowed.(ÿ»É¸ûÿÿÿÿ
n
java:S3776ó"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(ƶؠüÿÿÿÿ
G
java:S1172ó"+Remove this unused method parameter "node".(ƶؠüÿÿÿÿ

@ -1,27 +0,0 @@
U
java:S1118 ":Add a private constructor to hide the implicit public one.(—¸ËÊýÿÿÿÿ
O
java:S1874"9Remove this use of "getDefaultDisplay"; it is deprecated.(Å˨£
H
java:S1874"2Remove this use of "getMetrics"; it is deprecated.(Å˨£
O
java:S1874""9Remove this use of "getDefaultDisplay"; it is deprecated.(Å˨£
H
java:S1874""2Remove this use of "getMetrics"; it is deprecated.(Å˨£
Y
java:S1874>">Remove this use of "setDrawingCacheEnabled"; it is deprecated.(‰¬áÎþÿÿÿÿ
O
java:S1874?"9Remove this use of "buildDrawingCache"; it is deprecated.(Ý›š¹
M
java:S1874@"7Remove this use of "getDrawingCache"; it is deprecated.(µ õ¨
Q
java:S1874E";Remove this use of "destroyDrawingCache"; it is deprecated.(¸¢ì«
Y
java:S1874O">Remove this use of "setDrawingCacheEnabled"; it is deprecated.(‰¬áÎþÿÿÿÿ
O
java:S1874P"9Remove this use of "buildDrawingCache"; it is deprecated.(Ý›š¹
M
java:S1874Q"7Remove this use of "getDrawingCache"; it is deprecated.(µ õ¨
Q
java:S1874Z";Remove this use of "destroyDrawingCache"; it is deprecated.(¸¢ì«

@ -1,175 +0,0 @@
p
java:S2293´"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥ð
b
java:S1192´"FDefine a constant instead of duplicating this literal " AND " 5 times.(’²—òøÿÿÿÿ
]
java:S1192­"FDefine a constant instead of duplicating this literal " DESC" 4 times.(¼üäÍ
]
java:S1192Ê"FDefine a constant instead of duplicating this literal "first" 3 times.(ø¿¶€
g java:S117Ö"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( ú<C2A0>ª
>
java:S1604<18>"(Make this anonymous inner class a lambda(—̺V
?
java:S1604Ò"(Make this anonymous inner class a lambda(ά¯”
?
java:S1604á"(Make this anonymous inner class a lambda(¿Ü´ã
?
java:S1604Ñ"(Make this anonymous inner class a lambda(„ñ׿
D
java:S1604â"(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ
D
java:S1604¬"(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ
?
java:S1604´"(Make this anonymous inner class a lambda(øÄì‡
?
java:S1604¬"(Make this anonymous inner class a lambda(Û±¼ 
?
java:S1604Ï"(Make this anonymous inner class a lambda(ά¯”
>
java:S1604À
"(Make this anonymous inner class a lambda(£·®
?
java:S1604¼
"(Make this anonymous inner class a lambda(„ñ׿
D
java:S1604Ù
"(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ
?
java:S1604î
"(Make this anonymous inner class a lambda(Éãî
?
java:S1604ê
"(Make this anonymous inner class a lambda(„ñ׿
D
java:S1604ö
"(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ
?
java:S1604ÿ
"(Make this anonymous inner class a lambda(Éãî
?
java:S1604 "(Make this anonymous inner class a lambda(Éãî
?
java:S1604³ "(Make this anonymous inner class a lambda(Éãî
?
java:S1604¯ "(Make this anonymous inner class a lambda(„ñ׿
D
java:S1604Ä "(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ
?
java:S1604Ð "(Make this anonymous inner class a lambda(ŒÎ–µ
g
java:S1301ç"KReplace this "switch" statement by "if" statements to increase readability.(ýÞ³‹ùÿÿÿÿ
g
java:S1301"KReplace this "switch" statement by "if" statements to increase readability.(ד¾ñùÿÿÿÿ
i java:S116o"TRename this field "time_mode" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(šÛÜõ
o java:S116q"URename this field "succ_login" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(<28>ÿ§Åüÿÿÿÿ
j
java:S3008"SRename this field "VIEW_WAY" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(´÷èÏ
^ java:S119m"IRename this generic name to match the regular expression '^[A-Z][0-9]?$'.(Ӈį
8
java:S1116<18>"Remove this empty statement.(ôŸŽìúÿÿÿÿ
a
java:S1124½"EReorder the modifiers to comply with the Java Language Specification.(¹úæµûÿÿÿÿ
[
java:S1124¾"EReorder the modifiers to comply with the Java Language Specification.(ìѾk
F
java:S1874ä"/Remove this use of "Handler"; it is deprecated.(ŸÇŸÇ
i
java:S3776"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(ŸŒ¹Ñ
M
java:S1874"6Remove this use of "BitmapDrawable"; it is deprecated.(<28>ÖÙ•
R java:S125"<This block of commented-out lines of code should be removed.(²þú¿
2
java:S3626½"Remove this redundant jump.(ûÁÝ…
2
java:S3626Ñ"Remove this redundant jump.(ûÁÝ…
P
java:S1874¯"9Remove this use of "PreferenceManager"; it is deprecated.(­©Ð
Z
java:S1874¯"CRemove this use of "getDefaultSharedPreferences"; it is deprecated.(­©Ð
N
java:S1135Ã"2Complete the task associated to this TODO comment.(ÕÌ<C395>®þÿÿÿÿ
o
java:S1450õ"XRemove the "mMoveMenu" field and declare it as a local variable in the relevant methods.(ž¢—ò
n
java:S3252ò"RUse static access with "android.widget.AbsListView" for "MultiChoiceModeListener".(¦Ûî„úÿÿÿÿ
N
java:S1135ª"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
N
java:S1135¯"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
U
java:S1874ê"9Remove this use of "getDefaultDisplay"; it is deprecated.(ĸ¬Ìýÿÿÿÿ
M
java:S1874ë"1Remove this use of "getHeight"; it is deprecated.(·¡ªÃýÿÿÿÿ
8
java:S1116¡"Remove this empty statement.(ôŸŽìúÿÿÿÿ
i
java:S3776ù"RRefactor this method to reduce its Cognitive Complexity from 32 to the 15 allowed.(ãìîí
E
java:S1874".Remove this use of "<init>"; it is deprecated.(””ú±
? java:S108")Either remove or fill this block of code.(žûÊ¥
K
java:S1874«"/Remove this use of "execute"; it is deprecated.( å«<C3A5>ûÿÿÿÿ
h
java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(ÅôÉ#
N
java:S1135î"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
^
java:S1126ó"BReplace this if-then-else statement by a single method invocation.(玒¦ýÿÿÿÿ
N
java:S1135û"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
R java:S125<18>"<This block of commented-out lines of code should be removed.(¡Î•Ò
M
java:S2696«"6Make the enclosing method "static" or remove this set.(œõ½€
M
java:S2696¯"6Make the enclosing method "static" or remove this set.(ºãÑÐ
J
java:S1874À".Remove this use of "<init>"; it is deprecated.(ЧðÛýÿÿÿÿ
f
java:S1874È"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(÷ችûÿÿÿÿ
K
java:S1874å"/Remove this use of "execute"; it is deprecated.( å«<C3A5>ûÿÿÿÿ
h
java:S3776ô"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(ôŒùb
g java:S128 "LEnd this switch case with an unconditional break, return or throw statement.(δ¡Ûøÿÿÿÿ
d java:S100Ð "NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÆóÈù
V java:S899Õ ";Do something with the "boolean" value returned by "delete".(²Œ­<C592>ûÿÿÿÿ
j
java:S4042Õ "NUse "java.nio.file.Files#delete" here for better messages on error conditions.(²Œ­<C592>ûÿÿÿÿ
] java:S899× "BDo something with the "boolean" value returned by "createNewFile".(Ð<>Íùÿÿÿÿ
i java:S100å "NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÁìÁ¹ÿÿÿÿÿ
\
java:S3252ý "@Use static access with "android.provider.BaseColumns" for "_ID".(»¨–öýÿÿÿÿ
T
java:S1117Œ
"8Rename "uri" which hides the field declared at line 135.(Ÿ®ù“ûÿÿÿÿ
d
java:S3252
"MUse static access with "android.provider.MediaStore$MediaColumns" for "DATA".(äµõŒ
C
java:S1874
",Remove this use of "DATA"; it is deprecated.(äµõŒ
W java:S125 
"<This block of commented-out lines of code should be removed.(š•å°þÿÿÿÿ
M
java:S1874¡
"6Remove this use of "BitmapDrawable"; it is deprecated.(<28>ÖÙ•
J
java:S1172þ
".Remove this unused method parameter "context".(ãÕÚ€ýÿÿÿÿ
i java:S100 "NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÉðçËÿÿÿÿÿ
J
java:S1172 ".Remove this unused method parameter "context".(Žà®þýÿÿÿÿ
i java:S100¨ "NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ù²þíþÿÿÿÿ
J
java:S1172¨ ".Remove this unused method parameter "context".(ù²þíþÿÿÿÿ
G
java:S3398É"0Move this method into "OnListItemClickListener".(‘ðð¡
A
java:S3398œ "%Move this method into "ModeCallback".(“ðÉçýÿÿÿÿ
<
java:S3398ù"%Move this method into "ModeCallback".(ãìîí
K
java:S3398Ý"/Move this method into "BackgroundQueryHandler".(—÷õŽüÿÿÿÿ
I
java:S1068q".Remove this unused "succ_login" private field.(<28>ÿ§Åüÿÿÿÿ

@ -1,3 +0,0 @@
[
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(ð«¦í

@ -1,95 +0,0 @@
P
java:S1118":Add a private constructor to hide the implicit public one.(ªµ<C2AA><C2B5>
`
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(”Úùµþÿÿÿÿ
[
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ð㘱
[
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(å¬å³
[
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(¸œÏ<C593>
`
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(¶ÎƉýÿÿÿÿ
[
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(ùùŸÕ
`
java:S1124!"EReorder the modifiers to comply with the Java Language Specification.(íâúÓÿÿÿÿÿ
[
java:S1124#"EReorder the modifiers to comply with the Java Language Specification.(â¹âæ
`
java:S1124%"EReorder the modifiers to comply with the Java Language Specification.(™¹å†þÿÿÿÿ
`
java:S1124'"EReorder the modifiers to comply with the Java Language Specification.(Ëãßìüÿÿÿÿ
`
java:S1124)"EReorder the modifiers to comply with the Java Language Specification.(‚šÛ²üÿÿÿÿ
`
java:S1124+"EReorder the modifiers to comply with the Java Language Specification.(ºãÌýþÿÿÿÿ
[
java:S1124-"EReorder the modifiers to comply with the Java Language Specification.(«è¶ó
[
java:S1124/"EReorder the modifiers to comply with the Java Language Specification.(Ó<>•·
[
java:S11241"EReorder the modifiers to comply with the Java Language Specification.(ùœª”
[
java:S11243"EReorder the modifiers to comply with the Java Language Specification.(ŸÌ¥’
[
java:S11245"EReorder the modifiers to comply with the Java Language Specification.(Юԛ
Z
java:S11247"EReorder the modifiers to comply with the Java Language Specification.(—ùž
`
java:S11249"EReorder the modifiers to comply with the Java Language Specification.(£úÿÿÿÿ
Z
java:S1124;"EReorder the modifiers to comply with the Java Language Specification.(ûÉøK
`
java:S1124="EReorder the modifiers to comply with the Java Language Specification.(´ÙøÜøÿÿÿÿ
[
java:S1124?"EReorder the modifiers to comply with the Java Language Specification.(Ö«¦î
Z
java:S1124A"EReorder the modifiers to comply with the Java Language Specification.(ëí‚$
[
java:S1124C"EReorder the modifiers to comply with the Java Language Specification.(±‚Çð
`
java:S1124E"EReorder the modifiers to comply with the Java Language Specification.(èÁø°ÿÿÿÿÿ
[
java:S1124G"EReorder the modifiers to comply with the Java Language Specification.(¬ôÿ<C3B4>
[
java:S1124I"EReorder the modifiers to comply with the Java Language Specification.(ì૵
`
java:S1124K"EReorder the modifiers to comply with the Java Language Specification.(âÖ<C3A2>îýÿÿÿÿ
[
java:S1124M"EReorder the modifiers to comply with the Java Language Specification.(¡¦¡Æ
`
java:S1124O"EReorder the modifiers to comply with the Java Language Specification.(‘™¾Ðüÿÿÿÿ
`
java:S1124Q"EReorder the modifiers to comply with the Java Language Specification.(­<>—Òøÿÿÿÿ
[
java:S1124S"EReorder the modifiers to comply with the Java Language Specification.(ž×Éô
[
java:S1124U"EReorder the modifiers to comply with the Java Language Specification.(ø°Í´
`
java:S1124W"EReorder the modifiers to comply with the Java Language Specification.(¼Ô£¹øÿÿÿÿ
[
java:S1124Y"EReorder the modifiers to comply with the Java Language Specification.(ŠÉ΢
`
java:S1124["EReorder the modifiers to comply with the Java Language Specification.(äöÅŒýÿÿÿÿ
`
java:S1124]"EReorder the modifiers to comply with the Java Language Specification.(Á¨È¨úÿÿÿÿ
[
java:S1124_"EReorder the modifiers to comply with the Java Language Specification.(—Ú÷Œ
[
java:S1124a"EReorder the modifiers to comply with the Java Language Specification.(¼ÕÍ€
`
java:S1124c"EReorder the modifiers to comply with the Java Language Specification.(íõâûÿÿÿÿ
`
java:S1124e"EReorder the modifiers to comply with the Java Language Specification.(õÑæÞÿÿÿÿÿ
[
java:S1124g"EReorder the modifiers to comply with the Java Language Specification.(´Æ’µ
`
java:S1124i"EReorder the modifiers to comply with the Java Language Specification.(û³˜µÿÿÿÿÿ
`
java:S1124k"EReorder the modifiers to comply with the Java Language Specification.(<28>ìÝÚÿÿÿÿÿ
Z
java:S1124m"EReorder the modifiers to comply with the Java Language Specification.(場-
`
java:S1124o"EReorder the modifiers to comply with the Java Language Specification.(éÙýâûÿÿÿÿ

@ -1,35 +0,0 @@
P
java:S1118":Add a private constructor to hide the implicit public one.(§Ú¦“
P
java:S1118*":Add a private constructor to hide the implicit public one.(¦¬ÿ”
[
java:S1124+"EReorder the modifiers to comply with the Java Language Specification.(‰ßÆ“
`
java:S11243"EReorder the modifiers to comply with the Java Language Specification.(¼Þý·þÿÿÿÿ
O
java:S1874E"9Remove this use of "PreferenceManager"; it is deprecated.(º—‡ê
Y
java:S1874E"CRemove this use of "getDefaultSharedPreferences"; it is deprecated.(º—‡ê
D
java:S2140G")Use "java.util.Random.nextInt()" instead.(Åðêôþÿÿÿÿ
U
java:S1118M":Add a private constructor to hide the implicit public one.(øÕŪþÿÿÿÿ
`
java:S1124N"EReorder the modifiers to comply with the Java Language Specification.(»ÔÌôüÿÿÿÿ
`
java:S1124V"EReorder the modifiers to comply with the Java Language Specification.(ÓþûÐúÿÿÿÿ
`
java:S1124^"EReorder the modifiers to comply with the Java Language Specification.(òÄó²ýÿÿÿÿ
[
java:S1124f"EReorder the modifiers to comply with the Java Language Specification.(ƒϚ
Q
java:S1118ƒ":Add a private constructor to hide the implicit public one.(ÜÖ¹Ø
a
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(®íç±þÿÿÿÿ
a
java:S1124<18>"EReorder the modifiers to comply with the Java Language Specification.(ªª‡›úÿÿÿÿ
V
java:S1118<18>":Add a private constructor to hide the implicit public one.(ŽÞëÿùÿÿÿÿ
\
java:S1124ž"EReorder the modifiers to comply with the Java Language Specification.(<28>Þúí

@ -1,5 +0,0 @@
i
java:S3776"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(´ÇŽª
\
java:S2259¹"@A "NullPointerException" could be thrown; "js" is nullable here.(±ú”§ýÿÿÿÿ

@ -1,3 +0,0 @@
>
java:S1604)"(Make this anonymous inner class a lambda(€ÖÊ©

@ -1,61 +0,0 @@
U
java:S18743":Remove this use of "PreferenceActivity"; it is deprecated.(ç½Úàøÿÿÿÿ
P
java:S1874@":Remove this use of "PreferenceCategory"; it is deprecated.(ÜΘÓ
`
java:S1874I"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(ÍΘÇ
K
java:S1874J"0Remove this use of "onCreate"; it is deprecated.(È¢Õ–úÿÿÿÿ
]
java:S1874O"BRemove this use of "addPreferencesFromResource"; it is deprecated.(Š ¼Çÿÿÿÿÿ
P
java:S1874P":Remove this use of "PreferenceCategory"; it is deprecated.(‰´Òø
L
java:S1874P"6Remove this use of "findPreference"; it is deprecated.(‰´Òø
I
java:S1874X"3Remove this use of "getListView"; it is deprecated.(ôدé
h
java:S3776\"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(Ù«µ§
`
java:S1874x"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(ÍÙ÷¢
G
java:S1874|"1Remove this use of "onDestroy"; it is deprecated.(ÍÊ·´
H
java:S1874"1Remove this use of "removeAll"; it is deprecated.(<28>€ûœ
N
java:S1874"2Remove this use of "Preference"; it is deprecated.(ƒù¬ ýÿÿÿÿ
N
java:S1874"2Remove this use of "Preference"; it is deprecated.(ƒù¬ ýÿÿÿÿ
G
java:S1874"0Remove this use of "setTitle"; it is deprecated.(<28>ÿœ
N
java:S1874"2Remove this use of "setSummary"; it is deprecated.(÷ÒÙÝûÿÿÿÿ
[
java:S1874"DRemove this use of "setOnPreferenceClickListener"; it is deprecated.(ž§¤É
N
java:S1874"2Remove this use of "Preference"; it is deprecated.(¶®è‰øÿÿÿÿ
Q
java:S1874š"5Remove this use of "addPreference"; it is deprecated.(èÙ†Ýüÿÿÿÿ
a
java:S1874ù"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(<28>ñ”Ò
Q
java:S1161ù":Add the "@Override" annotation above this method signature(<28>ñ”Ò
?
java:S1604"(Make this anonymous inner class a lambda(ž§¤É
?
java:S1604¤"(Make this anonymous inner class a lambda(ðåܨ
?
java:S1604«"(Make this anonymous inner class a lambda(ðåܨ
?
java:S1604ç"(Make this anonymous inner class a lambda(ά¯”
?
java:S1604ô"(Make this anonymous inner class a lambda(³Ú…Î
?
java:S1604"(Make this anonymous inner class a lambda(ôéŽÿ
?
java:S1604²"(Make this anonymous inner class a lambda(Éãî
?
java:S1604Í"(Make this anonymous inner class a lambda(Éãî
g
java:S1301ú"KReplace this "switch" statement by "if" statements to increase readability.(øå´¡ÿÿÿÿÿ

@ -1,15 +0,0 @@
\
java:S1126~"AReplace this if-then-else statement by a single return statement.(Æ·¾ôúÿÿÿÿ
i
java:S3776"RRefactor this method to reduce its Cognitive Complexity from 23 to the 15 allowed.(<28>¤§²
\
java:S2147ö"ECombine this catch with the one at line 243, which has the same body.(æš©›
u
java:S2293¾"YReplace the type specification in this constructor call with the diamond operator ("<>").(áºÐ»ûÿÿÿÿ
j
java:S1192@"ODefine a constant instead of duplicating this literal "Wrong note id:" 3 times.(€¨ƒ¦úÿÿÿÿ
U
java:S1155í">Use isEmpty() to check whether the collection is empty or not.(”¥ŠÉ
O
java:S2589ñ"8Remove this expression which always evaluates to "false"(…Ùâ±

@ -1,9 +0,0 @@
r
java:S3923Ë"[Remove this conditional structure or edit its code blocks so that they're not all the same.(†ÈÔ¡
t
java:S2293*"YReplace the type specification in this constructor call with the diamond operator ("<>").(¡Ê©ëùÿÿÿÿ
Œ
java:S1319Ì"pThe return type of this method should be an interface such as "List" rather than the implementation "ArrayList".(ëï·ºüÿÿÿÿ
\
java:S2259Š"@A "NullPointerException" could be thrown; "js" is nullable here.(Âä¢Ñúÿÿÿÿ

@ -1,27 +0,0 @@
`
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ö<C396>¿ùÿÿÿÿ
`
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(êŲôûÿÿÿÿ
`
java:S1124"EReorder the modifiers to comply with the Java Language Specification.(šØ²Ãùÿÿÿÿ
`
java:S1124!"EReorder the modifiers to comply with the Java Language Specification.(°àº¿øÿÿÿÿ
[
java:S1124#"EReorder the modifiers to comply with the Java Language Specification.(ôÕ³Þ
[
java:S1124%"EReorder the modifiers to comply with the Java Language Specification.(ߪäË
[
java:S1124'"EReorder the modifiers to comply with the Java Language Specification.(¹‹¶È
L
java:S2696/"6Make the enclosing method "static" or remove this set.(«ÑŽð
L
java:S26961"6Make the enclosing method "static" or remove this set.(ÙÊãÚ
E
java:S18747"/Remove this use of "execute"; it is deprecated.(¡íŠþ
L
java:S2696C"6Make the enclosing method "static" or remove this set.(ÙÊãÚ
K
java:S2696e"6Make the enclosing method "static" or remove this set.(„ò<E2809E>
>
java:S1604/"(Make this anonymous inner class a lambda(«ÑŽð

@ -1,13 +0,0 @@
2
java:S2386."Make this member "protected".(êÝÐu
n
java:S3776å"RRefactor this method to reduce its Cognitive Complexity from 91 to the 15 allowed.(¸ŸêÉýÿÿÿÿ
h
java:S3776»"RRefactor this method to reduce its Cognitive Complexity from 32 to the 15 allowed.(ë®Æ
u
java:S2293<18>"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“<C5B8>…üÿÿÿÿ
u
java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“<C5B8>…üÿÿÿÿ
u
java:S2293¢"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“<C5B8>…üÿÿÿÿ

@ -1,7 +0,0 @@
3
java:S2386!"Make this member "protected".(±ê™–
K
java:S1874*"5Remove this use of "CursorAdapter"; it is deprecated.(椱
M
java:S1135+"2Complete the task associated to this TODO comment.(ƒŠ® úÿÿÿÿ

@ -1,97 +0,0 @@
?
settings.gradle,0\5\05efc8b1657769a27696d478ded1e95f38737233
g
7app/src/main/java/net/micode/notes/gtask/data/Node.java,3\a\3aac5305cb73bfbdeb8078cd264d04323fa80e92
k
;app/src/main/java/net/micode/notes/gtask/data/MetaData.java,c\1\c182d0c9c237ea8a46a92ccaae9bb5c751923a88
j
:app/src/main/java/net/micode/notes/gtask/data/SqlData.java,9\3\934a4e2abf19d28a53f6aeb1dcd99248c44b6892
j
:app/src/main/java/net/micode/notes/gtask/data/SqlNote.java,f\1\f1226eeacd46c914d51f3d1a6d6f27377490d2a4
k
;app/src/main/java/net/micode/notes/gtask/data/TaskList.java,e\0\e094aec5c3e1b6f44539adff3114f5a1ad603ddc
s
Capp/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java,0\2\023468cfdd0b71d4098903b9070e364658e2fbcf
p
@app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java,4\5\4529b3a97b0f3b19b895aa06f23bed63ff38a312
u
Eapp/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java,f\0\f087b1ba1b9c91b7293fea0fb071eaed62a42137
q
Aapp/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java,5\8\58052a8597c5f01595e1c849728bcae66c27a1a6
t
Dapp/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java,1\7\175d8fa829f0a7ced6aa11970f112de6ad144628
t
Dapp/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java,2\b\2b687ab930681e3885683578d43df600a0a20982
d
4app/src/main/java/net/micode/notes/data/Contact.java,9\a\9a3a19793537958b8b1b03a81985999e22705a2f
\
,app/src/main/java/net/micode/notes/ui/a.puml,e\2\e23a916e8d0d111f6f78455d912732b660d42dd8
g
7app/src/main/java/net/micode/notes/gtask/data/Task.java,d\1\d187f1271655c3d91661a39fe6de395b6a9f290a
~
Napp/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java,5\f\5f6162ca79fcea353b280c5dc84973a9c37d2c74

Oapp/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java,0\f\0f0f0549145d0e2bfb972ba1ed2e2c38bfd6d1b1
m
=app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java,c\4\c42ad3cd6e664963fa1849c760a57d417d500ee7
m
=app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java,3\e\3e688be40dc69cfd1062f41d0fc27fe261a26710
i
9app/src/main/java/net/micode/notes/ui/DateTimePicker.java,6\c\6cbf8bd9aa98eff862b1dc067330ba66ba4493aa
k
;app/src/main/java/net/micode/notes/tool/ResourceParser.java,c\6\c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f
r
Bapp/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java,d\a\da57ce446af85bbd9aefee65e969869f0cff78b0
g
7app/src/main/java/net/micode/notes/ui/DropdownMenu.java,d\1\d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1
o
?app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java,2\b\2bfc771e07e87c37d3a76a2c815bc8fb30649798
h
8app/src/main/java/net/micode/notes/ui/AlarmReceiver.java,5\8\5836a695995df8fadacfa6409fe8d21d88946842
l
<app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java,0\2\0268ec648e2fc0139b30ed13396174b7392c1ae2
g
7app/src/main/java/net/micode/notes/ui/NoteEditText.java,5\0\503adcf2a0be1ecdb94a15efba4433b6589877b9
b
2app/src/main/java/net/micode/notes/model/Note.java,d\d\dd970bd8ce083850fca1d4d159647ccd110e57cb
m
=app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java,f\9\f9f49497f95afd327db7a7a512612aa1089003d4
b
2app/src/main/java/net/micode/notes/data/Notes.java,a\7\a7641cfac724321d508c2a284223a711011a93f5
k
;app/src/main/java/net/micode/notes/ui/NotesListAdapter.java,2\8\283f16cc23da56ca65616082bc810304d3511d0a
f
6app/src/main/java/net/micode/notes/tool/DataUtils.java,3\2\32360bf24febc78f20db52498c7576b3d8650d56
g
7app/src/main/java/net/micode/notes/ui/NoteItemData.java,0\8\08c35f02f11c35ae9ebf8db0a482054dfa1cf493
i
9app/src/main/java/net/micode/notes/model/WorkingNote.java,8\7\876016634c6642b35109680ccac740dc8271b236
@
app/build.gradle,f\4\f4a01d6a4fcb971362ec00a83903fd3902f52164
h
8app/src/main/java/net/micode/notes/ui/NotesListItem.java,5\d\5dfe6902d8ec740690f88d644e74362c3be08fad
<
build.gradle,f\0\f07866736216be0ee2aba49e392191aeae700a35
A
gradle.properties,2\a\2afbb999f001938c88fa43fc2ef52abf0f8213e4
@
local.properties,0\7\0712df971a99ac4d2fccb8e0fb19f377f3374cca
p
@app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java,1\e\1eb2363b523dbcae43d3c6e4790c64436af61b13
h
8app/src/main/java/net/micode/notes/ui/LoginActivity.java,6\7\67def85328d91007d9c01c410f35fe30f09e547a
P
app/src/main/AndroidManifest.xml,8\c\8c55c3ccc257e5907959013f99656e4c8ec3903e
j
:app/src/main/java/net/micode/notes/data/NotesProvider.java,6\a\6a65e747031f27aef20597b4181148a9fbf963d5
g
7app/src/main/java/net/micode/notes/tool/ImageUtils.java,7\e\7e95080e97eb945562bad95d376a9dbe3224954d
h
8app/src/main/java/net/micode/notes/tool/ScreenUtils.java,a\d\ad590109436b2eb4769f3f458b66ad7751784d6d
h
8app/src/main/java/net/micode/notes/tool/BackupUtils.java,a\4\a446c87b1013132f8adaf83656b582028e8809af
l
<app/src/main/java/net/micode/notes/ui/NotesListActivity.java,a\d\ad72331a1bed265bb9c0fe838faa74dbf69fce32
q
Aapp/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java,a\b\ab153b0256bc5f6c194e188cec0b8e327e347a90

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

@ -1,222 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayouts">
<shared>
<config />
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_LOG_LEVEL" value="debug" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="No Filters" />
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="NONE" />
</component>
<component name="ChangeListManager">
<list default="true" id="f028e52a-5f24-429b-8af1-f5a0863e8065" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\LENOVO\.android\avd\Pixel_2_API_22.avd]" />
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<projects_view>
<tree_state>
<expand>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="Notes-master1" type="f1a62948:ProjectNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="Notes-master1" type="f1a62948:ProjectNode" />
<item name="app" type="2d1252cf:ModuleNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="Notes-master1" type="f1a62948:ProjectNode" />
<item name="app" type="2d1252cf:ModuleNode" />
<item name="Dependencies" type="6de06a37:ExternalSystemViewDefaultContributor$MyDependenciesNode" />
</path>
</expand>
<select />
</tree_state>
</projects_view>
</state>
</system>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="UML Class" />
<option value="layoutResourceFile_vertical" />
<option value="Class" />
<option value="layoutResourceFile" />
<option value="resourceFile" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
</component>
<component name="GitSEFilterConfiguration">
<file-type-list>
<filtered-out-file-type name="LOCAL_BRANCH" />
<filtered-out-file-type name="REMOTE_BRANCH" />
<filtered-out-file-type name="TAG" />
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list>
</component>
<component name="ProjectId" id="1y8bCK8aNrO5m0nUFKRWf6mKZ1Z" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="DEBUGGABLE_DEVICE" value="Pixel_2_XL_API_23 [emulator-5554]" />
<property name="DEBUGGABLE_PROCESS" value="net.micode.notes" />
<property name="DEBUGGER_ID" value="Auto" />
<property name="DefaultPlantUmlFileTemplate" value="UML Class" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="RunOnceActivity.cidr.known.project.marker" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="SHOW_ALL_PROCESSES" value="false" />
<property name="android-custom-viewC:/Users/fanyi/.gradle/caches/modules-2/files-2.1/androidx.drawerlayout/drawerlayout/1.0.0/9ecd4ecb7da215ba4c5c3e00bf8d290dad6f2bc5/drawerlayout-1.0.0-sources.jar!/androidx/drawerlayout/widget/DrawerLayout.java_SELECTED" value="DrawerLayout" />
<property name="android-custom-viewD:/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditText.java_NoteEditText_DIMENSIONS" value="1080&#10;1920" />
<property name="android-custom-viewD:/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditText.java_SELECTED" value="NoteEditText" />
<property name="android-custom-viewE:/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditText.java_NoteEditText_DIMENSIONS" value="1080&#10;1920" />
<property name="android-custom-viewE:/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditText.java_SELECTED" value="NoteEditText" />
<property name="android-custom-viewE:/git/xcr_weihu/src/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditText.java_NoteEditText_DIMENSIONS" value="1080&#10;1920" />
<property name="android-custom-viewE:/git/xcr_weihu/src/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditText.java_SELECTED" value="NoteEditText" />
<property name="cidr.known.project.marker" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/res/layout" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.17" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
</component>
<component name="PsdUISettings">
<option name="LAST_EDITED_BUILD_TYPE" value="release" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="F:\xcr_weihu - improve\src\Notes-master1\app\src\main\res\layout" />
<recent name="F:\xcr_weihu - improve\src\Notes-master1\app\src\main\java\net\micode\notes\tool" />
<recent name="D:\Notes-master1\app\src\main\res\menu" />
<recent name="D:\Notes-master1\app\src\main\res\layout" />
<recent name="E:\git\xcr_weihu\src\Notes-master1\app\libs" />
</key>
<key name="android.template.2039368219">
<recent name="net.micode.notes.ui" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="net.micode.notes.ui" />
</key>
</component>
<component name="RunManager">
<configuration name="app" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
<module name="Notes-master1.app.main" />
<option name="DEPLOY" value="true" />
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
<option name="DEPLOY_AS_INSTANT" value="false" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
<option name="ALL_USERS" value="false" />
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
<option name="TARGET_SELECTION_MODE" value="DEVICE_AND_SNAPSHOT_COMBO_BOX" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" />
<Auto>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Auto>
<Hybrid>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Hybrid>
<Java />
<Native>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Native>
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
<option name="STARTUP_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Java/Kotlin Method Sample (legacy)" />
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" />
<option name="SKIP_ACTIVITY_VALIDATION" value="false" />
<method v="2">
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="f028e52a-5f24-429b-8af1-f5a0863e8065" name="Default Changelist" comment="" />
<created>1631636037075</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1631636037075</updated>
</task>
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="XDebuggerManager">
<watches-manager>
<configuration name="app">
<watch expression="savedInstanceState" />
<watch expression="this" language="JAVA" />
<watch expression="DataUtils" language="JAVA" />
</configuration>
</watches-manager>
</component>
</project>

Binary file not shown.

@ -1,57 +0,0 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "31.0.0"
defaultConfig {
applicationId "net.micode.notes"
minSdkVersion 16
//noinspection ExpiredTargetSdkVersion
targetSdkVersion 23
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
useLibrary 'org.apache.http.legacy'
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
implementation files('libs\\Msc.jar')
implementation "androidx.drawerlayout:drawerlayout:1.1.1"
implementation 'com.android.support:design:29.1.1'
implementation 'com.zhihu.android:matisse:0.5.2-beta4'
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation files('libs\\mysql-connector-java-5.1.46-bin.jar')
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
implementation 'com.simple:spiderman:1.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
sonarqube {
properties {
property "sonar.sourceEncoding", "GBK"
property "sonar.projectKey", "projectkey" //projectkey
property "sonar.projectName", project.name //projectname
property "sonar.sources", "src/main/java" //
property "sonar.projectVersion", project.version //
property "sonar.binaries", "build/intermediates/classes"
}
}

@ -1,80 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class AccountDialogTitleBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final TextView accountDialogSubtitle;
@NonNull
public final TextView accountDialogTitle;
private AccountDialogTitleBinding(@NonNull LinearLayout rootView,
@NonNull TextView accountDialogSubtitle, @NonNull TextView accountDialogTitle) {
this.rootView = rootView;
this.accountDialogSubtitle = accountDialogSubtitle;
this.accountDialogTitle = accountDialogTitle;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static AccountDialogTitleBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static AccountDialogTitleBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.account_dialog_title, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static AccountDialogTitleBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.account_dialog_subtitle;
TextView accountDialogSubtitle = ViewBindings.findChildViewById(rootView, id);
if (accountDialogSubtitle == null) {
break missingId;
}
id = R.id.account_dialog_title;
TextView accountDialogTitle = ViewBindings.findChildViewById(rootView, id);
if (accountDialogTitle == null) {
break missingId;
}
return new AccountDialogTitleBinding((LinearLayout) rootView, accountDialogSubtitle,
accountDialogTitle);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,100 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class ActivityLoginBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final EditText account;
@NonNull
public final Button cancel;
@NonNull
public final Button login;
@NonNull
public final EditText password;
private ActivityLoginBinding(@NonNull LinearLayout rootView, @NonNull EditText account,
@NonNull Button cancel, @NonNull Button login, @NonNull EditText password) {
this.rootView = rootView;
this.account = account;
this.cancel = cancel;
this.login = login;
this.password = password;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityLoginBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityLoginBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_login, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityLoginBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.account;
EditText account = ViewBindings.findChildViewById(rootView, id);
if (account == null) {
break missingId;
}
id = R.id.cancel;
Button cancel = ViewBindings.findChildViewById(rootView, id);
if (cancel == null) {
break missingId;
}
id = R.id.login;
Button login = ViewBindings.findChildViewById(rootView, id);
if (login == null) {
break missingId;
}
id = R.id.password;
EditText password = ViewBindings.findChildViewById(rootView, id);
if (password == null) {
break missingId;
}
return new ActivityLoginBinding((LinearLayout) rootView, account, cancel, login, password);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,52 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class AddAccountTextBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
private AddAccountTextBinding(@NonNull LinearLayout rootView) {
this.rootView = rootView;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static AddAccountTextBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static AddAccountTextBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.add_account_text, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static AddAccountTextBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
return new AddAccountTextBinding((LinearLayout) rootView);
}
}

@ -1,103 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class AppBarMainBinding implements ViewBinding {
@NonNull
private final CoordinatorLayout rootView;
@NonNull
public final Button btnNewNote;
@NonNull
public final ListView notesList;
@NonNull
public final SearchView searchView;
@NonNull
public final TextView tvTitleBar;
private AppBarMainBinding(@NonNull CoordinatorLayout rootView, @NonNull Button btnNewNote,
@NonNull ListView notesList, @NonNull SearchView searchView, @NonNull TextView tvTitleBar) {
this.rootView = rootView;
this.btnNewNote = btnNewNote;
this.notesList = notesList;
this.searchView = searchView;
this.tvTitleBar = tvTitleBar;
}
@Override
@NonNull
public CoordinatorLayout getRoot() {
return rootView;
}
@NonNull
public static AppBarMainBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static AppBarMainBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.app_bar_main, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static AppBarMainBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.btn_new_note;
Button btnNewNote = ViewBindings.findChildViewById(rootView, id);
if (btnNewNote == null) {
break missingId;
}
id = R.id.notes_list;
ListView notesList = ViewBindings.findChildViewById(rootView, id);
if (notesList == null) {
break missingId;
}
id = R.id.search_view;
SearchView searchView = ViewBindings.findChildViewById(rootView, id);
if (searchView == null) {
break missingId;
}
id = R.id.tv_title_bar;
TextView tvTitleBar = ViewBindings.findChildViewById(rootView, id);
if (tvTitleBar == null) {
break missingId;
}
return new AppBarMainBinding((CoordinatorLayout) rootView, btnNewNote, notesList, searchView,
tvTitleBar);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,99 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.NumberPicker;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class DatetimePickerBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final NumberPicker amPm;
@NonNull
public final NumberPicker date;
@NonNull
public final NumberPicker hour;
@NonNull
public final NumberPicker minute;
private DatetimePickerBinding(@NonNull LinearLayout rootView, @NonNull NumberPicker amPm,
@NonNull NumberPicker date, @NonNull NumberPicker hour, @NonNull NumberPicker minute) {
this.rootView = rootView;
this.amPm = amPm;
this.date = date;
this.hour = hour;
this.minute = minute;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static DatetimePickerBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DatetimePickerBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.datetime_picker, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DatetimePickerBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.amPm;
NumberPicker amPm = ViewBindings.findChildViewById(rootView, id);
if (amPm == null) {
break missingId;
}
id = R.id.date;
NumberPicker date = ViewBindings.findChildViewById(rootView, id);
if (date == null) {
break missingId;
}
id = R.id.hour;
NumberPicker hour = ViewBindings.findChildViewById(rootView, id);
if (hour == null) {
break missingId;
}
id = R.id.minute;
NumberPicker minute = ViewBindings.findChildViewById(rootView, id);
if (minute == null) {
break missingId;
}
return new DatetimePickerBinding((LinearLayout) rootView, amPm, date, hour, minute);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,80 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class DialogAddSecretBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final EditText editTextDescribe;
@NonNull
public final EditText editTextPassword;
private DialogAddSecretBinding(@NonNull LinearLayout rootView, @NonNull EditText editTextDescribe,
@NonNull EditText editTextPassword) {
this.rootView = rootView;
this.editTextDescribe = editTextDescribe;
this.editTextPassword = editTextPassword;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static DialogAddSecretBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogAddSecretBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_add_secret, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogAddSecretBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.editText_describe;
EditText editTextDescribe = ViewBindings.findChildViewById(rootView, id);
if (editTextDescribe == null) {
break missingId;
}
id = R.id.editText_password;
EditText editTextPassword = ViewBindings.findChildViewById(rootView, id);
if (editTextPassword == null) {
break missingId;
}
return new DialogAddSecretBinding((LinearLayout) rootView, editTextDescribe,
editTextPassword);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,58 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class DialogDeleteSenoteBinding implements ViewBinding {
@NonNull
private final EditText rootView;
@NonNull
public final EditText etDeleteSenote;
private DialogDeleteSenoteBinding(@NonNull EditText rootView, @NonNull EditText etDeleteSenote) {
this.rootView = rootView;
this.etDeleteSenote = etDeleteSenote;
}
@Override
@NonNull
public EditText getRoot() {
return rootView;
}
@NonNull
public static DialogDeleteSenoteBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogDeleteSenoteBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_delete_senote, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogDeleteSenoteBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
EditText etDeleteSenote = (EditText) rootView;
return new DialogDeleteSenoteBinding((EditText) rootView, etDeleteSenote);
}
}

@ -1,58 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class DialogEditTextBinding implements ViewBinding {
@NonNull
private final EditText rootView;
@NonNull
public final EditText etFolerName;
private DialogEditTextBinding(@NonNull EditText rootView, @NonNull EditText etFolerName) {
this.rootView = rootView;
this.etFolerName = etFolerName;
}
@Override
@NonNull
public EditText getRoot() {
return rootView;
}
@NonNull
public static DialogEditTextBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogEditTextBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_edit_text, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogEditTextBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
EditText etFolerName = (EditText) rootView;
return new DialogEditTextBinding((EditText) rootView, etFolerName);
}
}

@ -1,58 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class DialogInputPasswdBinding implements ViewBinding {
@NonNull
private final EditText rootView;
@NonNull
public final EditText etInputPasswd;
private DialogInputPasswdBinding(@NonNull EditText rootView, @NonNull EditText etInputPasswd) {
this.rootView = rootView;
this.etInputPasswd = etInputPasswd;
}
@Override
@NonNull
public EditText getRoot() {
return rootView;
}
@NonNull
public static DialogInputPasswdBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogInputPasswdBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_input_passwd, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogInputPasswdBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
EditText etInputPasswd = (EditText) rootView;
return new DialogInputPasswdBinding((EditText) rootView, etInputPasswd);
}
}

@ -1,79 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class DialogLoginBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final EditText editTextPasswd;
@NonNull
public final EditText editTextUser;
private DialogLoginBinding(@NonNull LinearLayout rootView, @NonNull EditText editTextPasswd,
@NonNull EditText editTextUser) {
this.rootView = rootView;
this.editTextPasswd = editTextPasswd;
this.editTextUser = editTextUser;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static DialogLoginBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogLoginBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_login, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogLoginBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.editText_passwd;
EditText editTextPasswd = ViewBindings.findChildViewById(rootView, id);
if (editTextPasswd == null) {
break missingId;
}
id = R.id.editText_user;
EditText editTextUser = ViewBindings.findChildViewById(rootView, id);
if (editTextUser == null) {
break missingId;
}
return new DialogLoginBinding((LinearLayout) rootView, editTextPasswd, editTextUser);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,90 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class DialogRegisterBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final EditText editTextRegPasswd;
@NonNull
public final EditText editTextRegUser;
@NonNull
public final EditText editTextRepasswd;
private DialogRegisterBinding(@NonNull LinearLayout rootView, @NonNull EditText editTextRegPasswd,
@NonNull EditText editTextRegUser, @NonNull EditText editTextRepasswd) {
this.rootView = rootView;
this.editTextRegPasswd = editTextRegPasswd;
this.editTextRegUser = editTextRegUser;
this.editTextRepasswd = editTextRepasswd;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static DialogRegisterBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogRegisterBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_register, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogRegisterBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.editText_reg_passwd;
EditText editTextRegPasswd = ViewBindings.findChildViewById(rootView, id);
if (editTextRegPasswd == null) {
break missingId;
}
id = R.id.editText_reg_user;
EditText editTextRegUser = ViewBindings.findChildViewById(rootView, id);
if (editTextRegUser == null) {
break missingId;
}
id = R.id.editText_repasswd;
EditText editTextRepasswd = ViewBindings.findChildViewById(rootView, id);
if (editTextRepasswd == null) {
break missingId;
}
return new DialogRegisterBinding((LinearLayout) rootView, editTextRegPasswd, editTextRegUser,
editTextRepasswd);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -1,68 +0,0 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class FolderListItemBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final TextView tvFolderName;
private FolderListItemBinding(@NonNull LinearLayout rootView, @NonNull TextView tvFolderName) {
this.rootView = rootView;
this.tvFolderName = tvFolderName;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static FolderListItemBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static FolderListItemBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.folder_list_item, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static FolderListItemBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.tv_folder_name;
TextView tvFolderName = ViewBindings.findChildViewById(rootView, id);
if (tvFolderName == null) {
break missingId;
}
return new FolderListItemBinding((LinearLayout) rootView, tvFolderName);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save